2013-02-18 4 views
1

В настоящее время я пишу проект Android, но у меня проблемы с файлом xml. Без datepicker список работает хорошо. Однако, когда я добавляю datepicker (без редактирования java-файла), listview disppears. Следующим является мой файл android xml:ListView исчезает при добавлении DatePicker

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


<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Enter Date" 
     android:textColor="@android:color/white" 
     android:textSize="25sp" /> 

    <DatePicker 
     android:id="@+id/datePicker1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <Button 
     android:id="@+id/confirm" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Confirm" /> 

</LinearLayout> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="@android:color/background_dark" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:drawSelectorOnTop="false" /> 
</LinearLayout> 

</LinearLayout> 

Что-то не так в моем XML-файле?

UPDATE: я узнал, что на Samsung Galaxy Y Duos появится ListView даже с DatePicker, но все еще не появляется на Galaxy Note Самсунга

ответ

0

Мое предположение было бы, что виджеты перед ListView в конечном итоге принимает все вертикальное пространство, и в вашем списке нет места для появления. Попробуйте установить высоту TextView, Button и DatePicker на что-то вроде 10dp и посмотреть, можете ли вы видеть список. Если это возможно, это проблема с пространством, и вам следует подумать об использовании ScrollView вместо LinearLayout.

+0

Пробный прокрутка, но безрезультатно. Я также попытался установить высоту DatePicker на 10dp, но ListView все еще не отображается. Однако, когда я удаляю Datepicker и даже увеличиваю размер TextView и Button, появляется ListView. – user1699366

+0

Узнал, что мой код, вышедший выше, работает на Samsung Galaxy Y, но не на Samsung Galaxy Note. Что это значит? – user1699366

+0

У вашего родителя 'LinearLayout', похоже, нет конечного тега. Это просто ошибка копирования .. или? Кроме того, вам действительно не нужно обертывать 'ListView' в' LinearLayout'. Просто имейте это как дочерний элемент родительского 'LinearLayout' и установите для него высоту« wrap_content ». – Akash

0

Пожалуйста, удалите эту строку

xmlns:android="http://schemas.android.com/apk/res/android 

исключением из верхнего расположения.

0

Попробуйте присвоить вес вашим макетам и посмотреть. добавить android: layout_weight = "1" к вашим личным макетам (не добавляйте это в свой основной линейный макет)

1

У меня была аналогичная проблема, когда я использовал DatePicker и ListView с пользовательским адаптером в такой же макет, и с моей деятельностью, расширяющей ListActivity и вызывающей getListView(). Список появился в старых версиях Android, но не в более новых версиях. Я понял, что метод getView() моего адаптера не был вызван.

Я получил его для работы над новыми версиями, изменив андроид: id = "@ android: id/list" на пользовательский идентификатор и вызвав findViewById с этим идентификатором, но тогда более старые версии получили «RuntimeException: ваш контент должен иметь ListView, идентификатор которого является «android.R.id.list». Чтобы он работал как в старых, так и в новых версиях, я использовал пользовательский идентификатор и метод findViewById, но расширялся из Activity вместо ListActivity. Возможно, есть способы справиться с этим, не избегая ListActivity, но это сработало для меня, по крайней мере.

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