Заполнить родитель не работает в моем списке просмотра - PullRequest
1 голос
/ 21 июля 2011

Вот мой код xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#E7F7FF" android:gravity="top">
    <!-- Header text here -->
    <TextView />
    <!-- Scrollable layout -->
    <ScrollView >
          <RelativeLayout android:layout_height="fill_parent" android:layout_marginTop="5dip" android:layout_width="fill_parent">       
            <LinearLayout >
                <ImageView />
            </LinearLayout>
            <LinearLayout >
                <TextView  />
                <TextView />
                <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
                    <ListView android:id="@+id/contact_number_list_view" android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="fill_parent"                   
                        android:layout_marginTop="3dp" android:layout_marginBottom="1dp" android:layout_marginRight="5dip" android:clickable="true"
                        android:cacheColorHint="#00000000" android:divider="@android:color/transparent" android:dividerHeight="2dip" android:fastScrollEnabled="true" 
                        android:fadeScrollbars="true" android:listSelector="@drawable/rounded_corner_item_selecter" android:layout_gravity="top"></ListView>
                    <TextView />    
                </FrameLayout>      
            </LinearLayout>

            <!-- Show tags details layout -->
            <LinearLayout  >
            <TableLayout > 

            </TableLayout>
            </LinearLayout>
        </RelativeLayout>
    </ScrollView>       
    <!-- Now button layouts here -->  
    <LinearLayout >
        <Button />
        <Button/>
        <Button />
    </LinearLayout>
</RelativeLayout>

И я хочу расширить представление списка как количество данных в нем. Но это не расширение в размерах. Зачем?

Ответы [ 3 ]

1 голос
/ 22 июля 2011

Как объяснили программисты, которые делали listView в этом видео от Google, я никогда не помещал ListView внутри View с прокруткой. Если ваш список не должен прокручиваться, используйте ViewGroup как линейный макет и добавьте все элементы в эту ViewGroup в цикле в вашем коде. Если вы хотите, чтобы вся строка была кликабельной, вы должны использовать другую ViewGroup в качестве корневого узла для каждой строки и добавить OnClickListener в это представление.

Так что просто замените ваш ListView на LinearLayout как

<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linear_layout_which_is_present_at_place_of_list_view"                                      
android:orientation="vertical"/>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"/>   

и пусть вы использовали два TextView в качестве пользовательской строки представления списка. Так что пользовательский вид строки будет row_view_layout.xml as

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">       
<TextView android:layout_width="wrap_content"
android:clickable="true"        
android:id="@+id/row_view_layout_text1"
android:layout_height="wrap_content" />
<TextView android:id="@+id/row_view_layout_text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"/>
</LinearLayout>

Пример кода:

//Let you were using two TextView as custom row of list view.
LinearLayout list = (LinearLayout)findViewById(R.id.linear_layout_which_is_present_at_place_of_list_view);
LayoutInflater inflater = LayoutInflater.from(context);
list.removeAllViews(); //Remove previously created views
for(String row : getAllRow()) {
       View vi = inflater.inflate(R.layout.row_view_layout, null);
       textOne = (TextView) vi.findViewById(R.id.row_view_layout_text1);
       textTwo = (TextView) vi.findViewById(R.id.row_view_layout_text2);

       final String t1 = row.getFirstValue();
       final String t2 = row.getSecondValue();

       textOne.setText(t1);
       textTwo.setText(t2);

       //Set listener for both text views

       textOne.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 Toast.makeText(context, "You clicked on : " + t1  , Toast.LENGTH_SHORT).show();
             }
        });

       textTwo.setOnClickListener(new OnClickListener() {                
             public void onClick(View v) {
                 Toast.makeText(context, "You clicked on : "  + t2 , Toast.LENGTH_SHORT).show();
             }
       });

       //Add view          
       list.addView(vi);
}

Надеюсь, это поможет.

Удачного кодирования.

0 голосов
/ 21 июля 2011

Установить ширину и высоту ScrollView Как то так:

<ScrollView 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">

     <!-- Contents -->

</ScrollView>
0 голосов
/ 21 июля 2011
 <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
                    <ListView android:id="@+id/contact_number_list_view" android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="fill_parent"                   
                        android:layout_marginTop="3dp" android:layout_marginBottom="1dp" android:layout_marginRight="5dip" android:clickable="true"
                        android:cacheColorHint="#00000000" android:divider="@android:color/transparent" android:dividerHeight="2dip" android:fastScrollEnabled="true" 
                        android:fadeScrollbars="true" android:listSelector="@drawable/rounded_corner_item_selecter" android:layout_gravity="top">

//HERE PUT THE ITEM VIEWS ELEMENTS OF THE LISTIVIEW

</ListView>

Я не вижу ничего, что могло бы вызвать твою проблему ...

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