/ / xml vs java LinearLayout-Füllungen - XML, Android, Benutzeroberfläche, Android-Linearlayout

xml vs java LinearLayout Füllungen - Xml, Android, Benutzer-Schnittstelle, Android-Linearlayout

In der folgenden XML - Version werden Höhe und Breite korrekt verarbeitet. Was fehlt dem Java nicht?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:orientation="horizontal">
<include android:id="@+id/cell1" layout="@layout/grid_text_view" />
<include android:id="@+id/cell2" layout="@layout/grid_text_view" />
</LinearLayout>

Java

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
ll.addView((TextView)this.getLayoutInflater().inflate(R.layout.grid_text_view, null));
ll.addView((TextView)this.getLayoutInflater().inflate(R.layout.grid_text_view, null));
setContentView(ll);

grid_text_view

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:text="1"
android:textSize="20sp"
android:gravity="center"
android:layout_weight="1" />

Ich habe versucht, eine ll.invalidate () und es hat auch nicht funktioniert? :(

Screenshots bei http://www.flickr.com/photos/48409507@N06/sets/72157623618407586/

Antworten:

2 für die Antwort № 1

Sie übergeben null als zweiten Parameter vondie inflate () Methode. Dadurch wird verhindert, dass der Layout Inflater die entsprechenden LayoutParams für die aufgeblasene Ansicht generiert. Anstatt null zu übergeben, übergeben Sie ll, das übergeordnete LinearLayout. Beachten Sie, dass Sie beim Aufrufen von inflate (R.layout.mytextview, ll, true) nicht einmal addView () aufrufen müssen. Der letzte Parameter, true, bedeutet, dass die aufgeblasene Ansicht dem übergeordneten Element zugeordnet wird.