2012-06-22 17 views
7

Я работаю над некоторыми ListView Я хочу показать Button под ним Я использую следующий код, но это не работает.Кнопка под ListView не видна в android

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

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:cacheColorHint="#00000000" 
    android:drawSelectorOnTop="false" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" /> 

</LinearLayout> 

кнопка не видна, я не знаю почему: /. любая помощь будет полезной.

+0

Попробуйте дать ему определенную ширину значение вместо wrap_content, т.е. '150dp'. – Mxyk

+0

Я пробовал это, и список отображался в области кнопок. – EJK

ответ

9

Просмотр списка занимает всю страницу. Постарайтесь дать желаемый вес элементам кода. Используйте этот код,

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

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:cacheColorHint="#00000000" 
    android:drawSelectorOnTop="false" 
    android:layout_weight="5" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:layout_weight="1" /> 

</LinearLayout> 
+1

Ник в использовании android: layout_weight вместо android: вес. – Mornor

8

Это происходит потому, что ListView имеет высоту, установленную в wrap_content, что позволяет растягивать ее, чтобы разместить все предметы, не оставляя места на экране. Вы можете использовать относительный макет установки кнопки в нижней, а затем в ListView, чтобы занять оставшееся место:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:layout_alignParentBottom="true" /> 

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:cacheColorHint="#00000000" 
    android:drawSelectorOnTop="false" 
    android:layout_above="@id/button1" /> 

</RelativeLayout> 
+0

Это заставит кнопку плавать в нижней части экрана. Не эффект, когда вы можете прокручивать список и находить кнопку. –

+0

Но это не то, о чем спрашивал оп. –

5

Я добавил эту линию .............. андроида: вес = "1" .......... в вид в списке ниже

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

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:cacheColorHint="#00000000" 
    android:drawSelectorOnTop="false" 
    android:weight="1" 
/> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" /> 

</LinearLayout> 
+0

Вы должны записать свои изменения, мы должны найти отличия в вашем и код OP – maskacovnik

+1

Я добавил эту строку .............. android: weight = "1" ..... ..... в виде списка – Cloy

+0

Эта вещь тоже помогла мне ................ Спасибо – krishnamahadik

0

Добавление веса или выравнивание дна заставит кнопку плавать в нижней части экрана всегда. И список будет ниже.

Если вы хотите отобразить кнопку после прокрутки списка вниз, добавьте кнопку в виде нижнего колонтитула в список.

1

Для этого кнопка и список должны находиться в одном и том же линейном режиме, если все виды находятся в относительном макете, добавьте listview и кнопку в линейный макет и придайте весу списка 1, это сработало для меня.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_shipping_address" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background_all" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.reallymake.android.pottery.ShippingAddressActivity"> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView9" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="13dp" 
    android:background="@drawable/button_shape" 
    android:text="@string/ok" 
     /> 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/btn_add_new_address" 
    android:orientation="vertical"> 


    <ListView 
     android:id="@+id/lv_addresses" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/list" 
     android:layout_marginTop="14dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/btn2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/lv_addresses" 
     android:layout_marginTop="14dp" 
     android:background="@drawable/button_shape" 
     android:text="@string/proceed" /> 
</LinearLayout> 

Смежные вопросы