Textview innerhalb RelativeLayout in benutzerdefinierte Ansicht nicht die Anwendung der Schwerkraft, richtig?

Also ich habe ein setup, wo ich bin meine eigene Ansicht, und ich bin hinzufügen einige TextViews in es. Aber die gravity Einstellung ist gebrochen, für Sie. (Es dreht sich horizontal, aber nicht vertikal) mache ich es so, weil es gibt anderen Sachen hab ich auch die Zeichnung in meiner Ansicht neben nur die TextViews, aber diejenigen, die funktionieren. Es gibt nur ein problem mit dem TextView Schwerkraft. Hier ist teilweise code von dem, was ich habe.

public class myView extends View {

    protected RelativeLayout baseLayout;
    protected TextView textView1;
    protected TextView textView2;

    public myView (Context context) {
        super(context);
        setLayoutParams(new LayoutParams(FILL_PARENT, FILL_PARENT));

        baseLayout = new RelativeLayout(context);
        baseLayout.setLayoutParams(new LayoutParams(FILL_PARENT, FILL_PARENT));

        textView1 = new TextView(context);
        //initialize textView1 string, id, textsize, and color here
        textView2 = new TextView(context);
        //initialize textView2 string, id, textsize, and color here

        baseLayout.addView(textView1);
        baseLayout.addView(textView2);
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        Resources res = getResources();
        //calculate out size and position of both textViews here
        textView1.layout(left1, top1, left1 + width1, top1 + height1);
        textView1.setGravity(Gravity.CENTER);
            textView1.setBackgroundColor(green); //just to make sure it's drawn in the right spot
        textView2.layout(left2, top2, left2 + width2, top2 + height2);
        textView2.setGravity(Gravity.CENTER);
            textView2.setBackgroundColor(blue); //same as above

        baseLayout.draw(canvas);
    }
}

Dies zeichnet die TextViews in den genauen spots und Größen, dass ich Sie will (ich weiß, weil der hintergrund-Farbe), aber die Schwerkraft setzt Sie nur horizontal zentriert.. nicht vertikal. (ja, die TextViews sind größer als der eigentliche text-strings)

Könnte ich WAHRSCHEINLICH implementieren die Lösung finden Sie hier (TextView Schwerkraft), aber das scheint nicht wie eine sehr effiziente und zuverlässige Möglichkeit, dies zu umgehen. Gibt es etwas, was ich falsch mache, was die Schwerkraft nicht mehr ordnungsgemäß funktioniert? Jede Eingabe/Hilfe wird geschätzt.

  • Zwei Dinge: 1. Ich wusste nicht, dass eine Ansicht könnte eine ViewGroup ? 2. Warum verwenden Sie ein RelativeLayout, wenn das Kind die Aussicht auf Positionen gesetzt, absolut ?
  • Never mind 1, ich wusste nicht, ViewGroup der erweiterten Ansicht !!
  • Es ist schon eine Weile her, seit ich dies geschrieben, aber wenn ich mich Recht erinnere - ein AbsoluteLayout erforderlich, verschiedene Konstruktor-Argumente, und es war einfach nur einfacher eine RealtiveLayout.. Aber dass kann nicht korrekt sein. :/ So oder so - Sie möchten möglicherweise einige anzeigen Positionen relativ und einige, absolut zu sein, - wer weiß, was Sie vielleicht geplant haben. Zumindest hätten Sie die Möglichkeit, mit einem relative layout. 🙂
InformationsquelleAutor Joishi Bodio | 2011-06-03
Schreibe einen Kommentar