xml против java LinearLayout заполняет - PullRequest
0 голосов
/ 14 марта 2010

xml-версия ниже правильно обрабатывает высоту и ширину, а java - чего не хватает в java?

XML

<?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" />

Я пробовал ll.invalidate (), и он тоже не работал? (

скриншоты на http://www.flickr.com/photos/48409507@N06/sets/72157623618407586/

1 Ответ

2 голосов
/ 14 марта 2010

Вы передаете значение NULL как второй параметр метода inflate (). Это предотвратит создание компоновщиком макета соответствующих LayoutParams для раздутого просмотра. Вместо передачи значения null передайте ll родительскому элементу LinearLayout. Обратите внимание, что если вы вызываете inflate (R.layout.mytextview, ll, true), вам даже не нужно вызывать addView (). Последний параметр true означает «прикрепить завышенное представление к родителю».

...