Как добавить поля строки при накачке LinearLayout? - PullRequest
1 голос
/ 27 сентября 2011

У меня есть Linearlayout часть Tablerow of tablelayout. Ниже приведено описание образца

<!-- Master Layout-->
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent" android:layout_width="match_parent"
    android:stretchColumns="0" android:baselineAligned="false">
<TableRow>
<Button></Button>
</Tablerow>

<TableRow>
<LinearLayout android:id="@+id/listinfo"></LinearLayout>
</Tablerow>

Затем я написал еще один линейный макет, чтобы создать ряды линейного макета, который я надуваю и добавляю к линейное расположение основного макета.

<!-- listrow layout-->

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="horizontal"
    xmlns:android="http://schemas.android.com/apk/res/android"

    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_gravity="left"
        android:src="@drawable/icon" />

        <TextView android:layout_weight="1" android:id="@+id/textView1" />

        <TextView android:layout_weight="1" android:id="@+id/textView1" />

</LinearLayout>

Все работает отлично, но я не получаю разграничители строк. Как это сделать?

Java-код

LinearLayout placeHolderLinearLayout = (LinearLayout)findViewById(R.id.listinfo);

for (int i =0; i < myarray.size(); i++) {

  final Employee eobj = myarray.get(i);     
  LayoutInflater vi =         (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  LinearLayout lrow = (LinearLayout)vi.inflate(R.layout.listrow, null); 
  lrow.setBackgroundColor(android.graphics.Color.WHITE);   
  lrow.setPadding(2, 2, 2, 2);   
  ((TextView)lrow.getChildAt(1)).setText(eobj.getName());    

   //some more settings
   placeHolderLinearLayout.addView(lrow);

 }

Представление не показывает никакого демаркатора между последующим линейным планированием. Как мне этого добиться?

  |---------------------|
  |  lrow1              |
  |______demarcator_____|  
  |  lrow2              |   => The demaractor is missing in my view
  |_____________________|

1 Ответ

4 голосов
/ 27 сентября 2011
LinearLayout lrow = (LinearLayout)vi.inflate(R.layout.listrow, null);

Попробуйте передать placeHolderLinearLayout вместо null.

Если вы определите true в качестве третьего параметра, инфальтированный макет будет автоматически добавлен к данному ViewGroup.false избежит этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...