Methoden, um die position der anzeigen gibt 0 zurück

Diese Frage wurde schon mehrfach gefragt, aber jeder gibt den Grund, warum dies geschieht (D. H. die Berechnung erfolgt, bevor das layout gelegt wird). Aber ich brauche die Lösung für dieses. Ich habe versucht getBottom();, getTop();, getLocationOnScreen(int[] location);. Aber alle gibt den Wert Null (0). Ich selbst habe versucht, diese in onStart(); zu geben, Zeit für das layout gelegt werden, aber kein Glück.
Hier ist mein code:

TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    tv = (TextView) findViewById(R.id.textView1);
    Log.d("getBottom   :", Integer.toString(tv.getBottom()));
    Log.d("gettop      :", Integer.toString(tv.getTop()));

    int[] location = new int[2];
    tv.getLocationOnScreen(location);
    Log.d("getlocationonscreen values :", Integer.toString(location[0])+"  "+Integer.toString(location[1]));
}
@Override
protected void onStart() {
    Log.d("getBottom in onStart :", Integer.toString(tv.getBottom()));
    Log.d("gettop in onStart    :", Integer.toString(tv.getTop()));

    int[] location = new int[2];
    tv.getLocationOnScreen(location);
    Log.d("getlocationonscreen in onStart :", Integer.toString(location[0])+"  "+Integer.toString(location[1]));
    super.onStart();
}

Layout-XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="156dp"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

Wieder, ich entschuldige mich für die Wiederholung der Frage. Vielen Dank im Voraus.

  • Können Sie bitte erklären wenig mehr, was ist Ihr problem genauer. was läuft falsch in obigen code.
InformationsquelleAutor Kartik | 2012-01-16
Schreibe einen Kommentar