Вопрос по android – Android, Как добавить ScrollView на экран, который имеет некоторые элементы списка?

2

в моей деятельности у меня есть три списка. после запуска приложения экран не может прокручиваться. Я могу прокрутить список, который находится поверх других, но я не могу прокрутить всю страницу. Я пытался добавитьScrollView в мой макет xml, но lint говорит, что «ScrollView с вертикальной прокруткой не должен содержать другой виджет с вертикальной прокруткой (ListView)».

Как сделать мой экран прокручиваемым?

Ваш Ответ

5   ответов
1

потому что андроид не знает, с каким видом он должен прокручивать, поэтому ставимlistview вscrollview это не блестящая идея. попробуй использоватьvisibilty атрибут, используйте дляHIDE вид, с которым вы работаете и устанавливаетеVISIBLE новый. или используйте одинListView и попробуйте заполнить и удалить элементы после окончания и начала инструкции. надеюсь, что поможет вам

2

Попробуй так

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

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

        <ListView android:id="@+id/ListView1"
                  android:choiceMode="multipleChoice"
                  android:layout_height="100dip"
                  android:layout_width="fill_parent" />
       <ListView android:id="@+id/ListView2"
                  android:choiceMode="multipleChoice"
                  android:layout_height="100dip"
                  android:layout_width="fill_parent" />
       <ListView android:id="@+id/ListView3"
                  android:choiceMode="multipleChoice"
                  android:layout_height="100dip"
                  android:layout_width="fill_parent" />

    </LinearLayout>

</ScrollView>
Спасибо, я сделал это, но результат был тот же, я не мог прокрутить экран. Hesam
1

        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <ListView
                android:id="@+id/listView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1" >
            </ListView>

        </LinearLayout>

    </ScrollView>

Scrollview поддерживает один дочерний макет, поэтому создайте просмотр списка внутри прокрутки, чтобы получить то, что вы хотите.

Спасибо, я сделал это, но результат был тот же, я не мог прокрутить экран. Hesam
1

и ваш список становится прокручиваемым внутри прокрутки: -

   ListView lstNewsOffer.setAdapter(new ViewOfferAdapter(
                            ViewNewsDetail.this, viewOfferList));
                    getListViewSize(lstNewsOffer);

void getListViewSize(ListView myListView) {
    ListAdapter myListAdapter = myListView.getAdapter();
    if (myListAdapter == null) {
        // do nothing return null
        return;
    }
    // set listAdapter in loop for getting final size
    int totalHeight = 0;
    for (int size = 0; size < myListAdapter.getCount(); size++) {
        View listItem = myListAdapter.getView(size, null, myListView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }
    // setting listview item in adapter
    ViewGroup.LayoutParams params = myListView.getLayoutParams();
    params.height = totalHeight
            + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1));
    myListView.setLayoutParams(params);
    // print height of adapter on log
    Log.i("height of listItem:", String.valueOf(totalHeight));
}
0

так это добавить заголовок и нижний колонтитул в список, надувая их. Создайте три XML-макета и добавьте их в список, используя верхний и нижний колонтитулы.

    View headerView = View.inflate(this, R.layout.layout_name, null);
    lv.addHeaderView(headerView);

используйте его перед настройкой адаптера. lv - просмотр списка.

Вы показываете один просмотр списка одновременно, можете ли вы сказать мне ... Пожалуйста ... Bharat Sharma

Похожие вопросы