Pytanie w sprawie android, scrollview – Android, Jak dodać ScrollView do ekranu, który zawiera elementy listy?

2

w mojej działalności mam trzy listy. po uruchomieniu aplikacji ekran nie jest przewijany. Mogę przewijać listę, która jest nad innymi, ale nie mogę przewijać całej strony. Próbowałem dodaćScrollView do mojego układu xml, ale lint mówi, że „Przewijany pionowo ScrollView nie powinien zawierać innego przewijanego pionowo widżetu (ListView)”.

Jak sprawić, by mój ekran był przewijany?

Twoja odpowiedź

5   odpowiedzi
1

ponieważ android nie wie, z którego widoku powinien się przewijać, więc umieszczenie alistview wscrollview to nie jest jasny pomysł. Spróbuj użyćvisibilty atrybut, użyj doHIDE widok, który możesz wykorzystać i ustawićVISIBLE Nowa. lub użyj jednegoListView i spróbuj wypełnić i usunąć elementy po zakończeniu i rozpoczęciu instrukcji. mam nadzieję, że ci pomożesz

1

<code>        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>
</code>

Scrollview obsługuje jeden układ podrzędny, dzięki czemu widok listy wewnątrz przewijania zapewni Ci to, czego chcesz.

Dziękuję, zrobiłem to, ale wynik był taki sam, nie mogłem przewijać ekranu. Hesam
2

Spróbuj tego

<code><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>
</code>
Dziękuję, zrobiłem to, ale wynik był taki sam, nie mogłem przewijać ekranu. Hesam
1

a widok listy stanie się przewijalny wewnątrz widoku przewijania: -

<code>   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));
}
</code>
0

to dodać nagłówek i stopkę do widoku listy, pompując je. Utwórz trzy layouty xml i dodaj je w widoku listy za pomocą nagłówka i stopki.

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

użyj go przed ustawieniem adaptera. lv to listview.

Wyświetlasz jeden widok listy w jednym czasie. Czy możesz mi powiedzieć ... Proszę ... Bharat Sharma

Powiązane pytania