2011-07-20 13 views
8

Chcę dodać wiele widoków w LinearLayout. Oto kod, którego używam do dodawania wielu widoków do LinearLayout.Problem z dodawaniem widoku dynamicznie w Linearlayout

kod Java:

LinearLayout seriesMainListItemView = (LinearLayout) findViewById(R.id.SeriesMainListItemView); 
       LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

       for (int i=0; i<scheduleArr.length; i++) { 

         View inflatedView = mInflater.inflate(R.layout.scheduleitem, null); 
         TextView inflatertext1 = (TextView) inflatedView.findViewById(R.id.text1); 
         TextView inflatertext2 = (TextView) inflatedView.findViewById(R.id.text2); 
         inflatertext1.setText(scheduleArr[i][0]); 
         inflatertext2.setText(scheduleArr[i][1]); 
         Log.i("data",i + " " + scheduleArr[i][0] + "/" + scheduleArr[i][1]); 
         seriesMainListItemView.addView(inflatedView); 
       } 

Oto Zobacz xml Chcę dodać wiele razy.


Oto LinearLayout gdzie chcę, aby go dodać.

<TableLayout 
       android:layout_gravity="center_vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:paddingLeft="1dip" 
       android:paddingRight="1dip" > 
       <TableRow 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"> 
        <ImageView 
         android:id="@+id/imgSeriesMainScheduleImg" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:background="@drawable/scheduleheader"/> 
        <LinearLayout 
         android:id="@+id/SeriesMainListItemView"          
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent"> 
        </LinearLayout>                        
       </TableRow> 
.............. 
</TableLayout> 

Ale tylko pojedynczy widok jest dodanie w LinearLayout, chociaż długość tablicy wynosi 3. Jaki jest problem w moim kodu?

+4

Czy ustawiłeś orientację LinearLayout? – Sujit

+0

Nie ustawiono orientacji. –

Odpowiedz

11

Dodałem orientację LinearLayout jako pionową. I staje się doskonały. Dziękuję Sujit za wskazówki.

+0

To rozwiązało mój problem! Próbowałem stworzyć niestandardowy składnik Androida i zapomniałem ustawić orientację na mojej nowej klasie, która rozszerza LinearLayout. –

0

Użyj wersji addView(), która pobiera obiekt LayoutParams, podaj odpowiedni numer LinearLayout.LayoutParams i sprawdź, czy to pomaga.

+0

Próbowałem z "serialMainListItemView.addView (inflatedView, i, new LinearLayout.LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));" również, brak zmiany wyniku: –

+0

@dalandroid: Użyj widoku hierarchii, aby sprawdzić, czy dodawane są widżety. Jeśli nie, określ, dlaczego Twój kod nie jest wywoływany lub coś takiego. Jeśli tak, widok hierarchii powinien wskazywać, dlaczego nie są widoczne. – CommonsWare

Powiązane problemy