Pregunta sobre scrollview, android – Android, ¿Cómo agregar ScrollView en la pantalla que tiene algunos elementos de la lista?

2

En mi actividad, tengo tres listas. Después de ejecutar la aplicación, la pantalla no se puede desplazar. Puedo desplazar la lista que está encima de otras, pero no puedo desplazar toda la página. Traté de añadirScrollView en mi diseño XML, pero la pelusa dice que "El ScrollView de desplazamiento vertical no debe contener otro widget de desplazamiento vertical (ListView)".

¿Cómo hacer mi pantalla desplazable?

Tu respuesta

5   la respuesta
2

Prueba de esta manera

<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>
Gracias, hice esto pero el resultado fue el mismo, no pude desplazarme por la pantalla. Hesam
0

ista de lista al inflarlos. Cree tres diseños xml y agréguelos a la vista de lista usando el encabezado y el pie de página.

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

Úselo antes de configurar el adaptador. lv es listview.

Estás mostrando una vista de lista a la vez, ¿puedes decirme? Por favor ... Bharat Sharma
1

Utilice este método y su vista de lista se puede desplazar dentro de scrollview:

<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

<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 admite un diseño secundario, así que haga la vista de lista dentro del scroll para que obtenga lo que desea.

Gracias, hice esto pero el resultado fue el mismo, no pude desplazarme por la pantalla. Hesam
1

por lo que poner unlistview en unscrollview No es una idea brillante. tratar de usarvisibilty atributo, utilizar paraHIDE La vista con la que trabajas y configuras.VISIBLE el nuevo. o usa unoListView e intente rellenar y eliminar elementos después de terminar e iniciar una instrucción. espero que te ayude

Preguntas relacionadas