Я использую Scrolling Activity, которая поставляется с Android Studio 1.4. У меня есть ImageView и ListView. XML для этого макета:ListView в Scrolling Activity отображает только A Single Item
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.viv.droidchef.EachRec"
tools:showIn="@layout/each_rec">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:id="@+id/recPixx"/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ingredients_list"></ListView>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
Проблема я столкнулся в том, что в моем ListView отображается только первый пункт. Вот мой код для ListView
String ingredients = new String[]{
" Boneless Chicken - 300 g",
"Ginger garlic paste - 2 tsp",
" Kashmiri red chilly pwd - ¾ tsp",
"Lemon juice - 1 tsp",
"Salt to taste ",
"Cooking oil - 3 to 4 tbsp",
"Gram/besan flour (kadalai maavu - 2 tbsp",
"Yoghurt - 1 cup",
"Kashmiri red chilly pwd - 1 tsp",
" Ginger garlic paste - 1 tsp",
"Turmeric pwd - ¼ tsp",
"Garam masala pwd - ½ tsp",
"Salt as required "
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, ingredients);
ListView lv= (ListView)findViewById(R.id.ingredients_list);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setAdapter(adapter);
lv.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
Я использовал режим выбора несколько, потому что я хочу контрольный список. Я использую setOnTouchListener, потому что у меня уже есть NestedScrollView в моем макете. Я нашел это на другом посту SO. Если я установил высоту фиксированного dp, похоже, он работает, но это не помогает, так как будет выглядеть по-разному на каждом размере экрана. Есть ли способ исправить проблему, с которой я столкнулся, и получить все элементы в списке, не используя Dp?
Наличие прокрутки (ListView) внутри другого прокрутки - это не очень хорошая идея. Вместо этого, возможно, вы можете сделать это изображение в заголовке своего списка ListView – AdamMc331
, для которого вы пытаетесь установить размеры в ** dp ** –
Итак, этот метод не сработает? –