Actualmente tengo la siguiente distribucióncómo puedo listview automáticamente el tamaño por lo que no se desplaza
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginTop="9px"
android:layout_below="@+id/desc"
android:id="@+id/ll_item"
android:orientation="vertical"
android:paddingRight="3px"
android:paddingLeft="3px"
android:paddingBottom="5px"
android:paddingTop="5px"
android:background="@drawable/rounded_corner_lists" >
<!--
<ListView android:drawSelectorOnTop="false" android:id="@+id/lv" android:layout_height="fill_parent" android:layout_width="wrap_content" android:divider="#ddd" android:dividerHeight="1px" android:background="@drawable/white" />
-->
</LinearLayout>
la vista de lista que he comentado, he tratado de hacer esto en el xml, con el conjunto de altura a wrap_content, fill_parent, actualmente estoy haciendo esto mediante programación con el siguiente código
LinearLayout ll_item = (LinearLayout) this.findViewById(R.id.ll_item);
if(list.length() > 0)
{
ll_item.setVisibility(View.VISIBLE);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,calcListHeight(list));
listview = new ListView(this);
listview.setBackgroundResource(R.drawable.white);
listview.setDivider(new ColorDrawable(this.getResources().getColor(R.drawable.dividercolor)));
listview.setDividerHeight(1);
listview.setCacheColorHint(0);
mAdapter = new JSONAdapter(list, this);
listview.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
ll_item.addView(listview, lp);
}
este es el resultado
para que pueda ver en esta imagen, que desde que estoy conteniendo la vista de lista en un LinearLayout para conseguir el aspecto esquina redondeada, no se estira de forma automática simplemente para contener toda la vista de lista, ¿hay alguna La forma de tener los dos elementos simplemente envuelve el contenido verticalmente para que no haya desplazamiento sin que programe la altura automáticamente. ? ?
Creo que una otra cosa que debo mencionar es que tengo todo esto en un diseño ScrollView, porque quiero esta vista de lista para ser una pequeña subsección de todo el trazado, por lo que sería algo así como
-scrollview
-textview
-textview
-linearlayout
-listview
- botón
aquí es un diseño más sencillo de lo que he
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_height="fill_parent" android:layout_width="fill_parent"
android:background="@drawable/bg" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/titlebar">
<ScrollView android:id="@+id/sv" android:layout_width="fill_parent" android:background="@drawable/bg"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:id="@+id/widget28"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="4dip"
>
<LinearLayout android:orientation="vertical" style="@style/rounded_corner_full_width_button"
android:id="@+id/editfields">
<ListView android:drawSelectorOnTop="false" android:id="@+id/lv" android:layout_height="fill_parent"
android:layout_width="wrap_content" android:divider="#ddd" android:dividerHeight="1px"
android:background="@drawable/white"/>
</LinearLayout>
</RelativeLayout>
</ScrollView>
</LinearLayout>
Gracias Adam, yo ya tenía un adaptador que yo era capaz de volver a usar con el LinearLayout la utilización de su pista. –
¡Gracias! Al igual que Artem, pude reutilizar mi adaptador usando una distribución lineal en su lugar. – hyui
Gracias Adam. ¿Su adaptador necesita ser asincrónico? Cuando intento esto, solo agarra mi primer elemento, como que el adaptador no se haya terminado de cargar. – annie