getHeight liefert immer 0?

  • Antworten:6
Ben Becker
  • Forum-Beiträge: 209

28.09.2011, 19:17:53 via Website

Hiho!
Ich habe eine Checkbox und habe darauf getHeight angewendet. Aber ich bekomme da immer 0 zurück. An was liegt das? Klappt das so nicht?
Ich wollte einer textView die über der CheckBox steht die selbe höhe geben und daher die höhe der Checkbox dynamisch ermitteln und dann setzen.

Antworten
Tobias Eckert
  • Forum-Beiträge: 155

28.09.2011, 22:51:14 via Website

Zu welchem Zeitpunkt rufst Du denn getHeight() auf? Wenn Du das aufrufst bevor Deine view gerendered wurde (z.B. wenn Du das während onCreate() aufrufst) dann hat die View noch keine Höhe und getHeight() gibt korrekterweise 0 zurück.

Antworten
Ben Becker
  • Forum-Beiträge: 209

28.09.2011, 22:52:17 via Website

Achso ok. Ja da rufe ich das auf.

Antworten
Philip M.
  • Forum-Beiträge: 90

05.10.2011, 10:16:05 via Website

Zu diesem Thema habe ich auch mal eine Frage.
Ich brauche die Höhe und Breite zur Initialisierung einiger Daten in meiner App, habe aber genau dasselbe Problem und es bis jetzt nicht wirklich lösen können. Gibt es eine Methode welche automatisch aufgerufen wird nachdem die View gerendert worden ist?

Antworten
Ben Becker
  • Forum-Beiträge: 209

07.10.2011, 15:22:34 via Website

Hiho!
Ich habe das jetzt mal versucht.

1class MyCustomView extends View{
2 public MyCustomView(Context context) {
3 super(context);
4 }
5
6@Override
7protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
8 super.onSizeChanged(xNew, yNew, xOld, yOld);
9 System.out.println("BEN "+((TextView)findViewById(R.id.liganame)).getHeight());
10}
11}

Und in der Activity habe ich drin: new MyCustomView(getApplicationContext());

Aber das onSizeChanged wird nie aufgerufen. Wieso?

Antworten
Christian A.
  • Forum-Beiträge: 2

13.12.2011, 12:12:02 via Website

Servus

1//Bevor Views angezeigt werden
2@Override
3public void onCreate(Bundle savedInstanceState){
4
5 view.getHeight() //0
6 view.getWidth() //0
7
8}
9
10//Views werden angezeigt
11@Override
12public void onWindowFocusChanged(boolean b){
13
14 view.getHeight() //20
15 view.getWidth() //40
16
17}

in onWindowFocusChanged kannst du getHeight() und getWidth() der jeweiligen Views verwenden

Antworten