Pergunta sobre scrollview, android – Android, como adicionar ScrollView na tela que tem alguns itens da lista?

2

na minha atividade, eu tenho três listas. depois de executar o aplicativo, a tela não é capaz de rolar. Eu posso rolar a lista que está em cima dos outros, mas eu não posso rolar a página inteira. Eu tentei adicionarScrollView no meu layout xml, mas lint diz que "O ScrollView de rolagem vertical não deve conter outro widget de rolagem vertical (ListView)".

Como fazer minha tela rolável?

Sua resposta

5   a resposta
0

inflando-os. Crie três layouts xml e adicione-os em listview usando cabeçalho e rodapé.

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

use-o antes de ajustar o adaptador. lv é listview.

Você está exibindo uma listview de uma só vez você pode me dizer .. Por favor ... Bharat Sharma
1

agem: -

<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>
1

então coloque umlistview em umscrollview não é uma ideia brilhante. tente usarvisibilty atributo, use paraHIDE a visão que você finich para trabalhar e definirVISIBLE o novo. ou use umListView e tente preencher e remover itens depois de terminar e iniciar uma instrução. espero que te ajudem

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 suporta um layout filho, então faça a lista dentro do pergaminho para que você possa obter o que deseja.

Obrigado, eu fiz isso, mas o resultado foi o mesmo, eu não poderia rolar a tela. Hesam
2

Tente assim

<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>
Obrigado, eu fiz isso, mas o resultado foi o mesmo, eu não poderia rolar a tela. Hesam

Perguntas relacionadas