2014-10-16 2 views
0

Я работаю над простым приложением, так что у основного действия есть два фрагмента, которые пользователь может пронести, чтобы перейти. На одном из них я хочу иметь собственный список. Например, что-то вроде этого https://github.com/JakeWharton/SwipeToDismissNOA, где каждый элемент в списке может быть удален путем прокрутки. Я смог получить обычный список для работы внутри ListFragment, но не могу заставить этот настраиваемый список работать. Насколько я понимаю, в ListFragment должен быть простой .xml с одним, но тот, который я хочу использовать, имеет немного больше материала. Что-то вроде этого:Пользовательский ListView в ListFragment или Fragment?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" 
android:baselineAligned="false" 
android:padding="16dp"> 

<LinearLayout android:layout_width="0dp" 
    android:layout_weight="1" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="8dp" 
    android:orientation="vertical"> 

    <TextView android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     style="?android:listSeparatorTextViewStyle" 
     android:text="ListView" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" /> 
</LinearLayout> 

Так что, когда я пытаюсь getListView() с помощью этого .xml, он либо возвращает нуль или когда я пытаюсь сделать что-то вроде этого: Посмотреть вид = Inflater. надуть (R.layout.fragment_section_dummy, null); ListView ls = (ListView) view.findViewById (android.R.id.list);

Он бросает эту ошибку: 10-15 20: 25: 28,895: E/AndroidRuntime (8081): java.lang.UnsupportedOperationException: addView (вид, LayoutParams) не поддерживается в AdapterView.

Спасибо.

ответ

0

Для меня самая легкая работа с моими собственными идентификаторами, поэтому я бы изменил ваш ID ListView на другой. Для моего примера я выбираю android:id="@+id/myList".

В своем фрагменте, в вашем методе onCreateView, попробуйте раздуть макет и получить свое представление по ID.

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.yourDummyLayout, container, false); 


     //You should get your ListView there 
     ListView yourListView = rootView.findViewById(R.id.myList); 

     [......] 

     return rootView; 
    } 

Попробуйте с этим;) Удачи!

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