Intereting Posts
Как заставить ConstraintLayout работать с процентными значениями? Размер указателя. Насколько велика ссылка на объект? Android Html.fromHtml (String) не работает для <font color = '#'> text </ font> Значок приложения запуска не удаляется с Начального экрана при удалении приложения для Android Как ввести «Negative Decimal Number» в EditText? Невозможно создать экземпляр вложенного класса (расширяет broadcastReceiver) при создании sendBroadcast Как скомпилировать статическую библиотеку с помощью Android NDK? Заголовок продукта и его описание не отображаются после замены открытого ключа (Base64). Какая разница между finish () и finishActivity (int requestCode) в android Захват / перехват намерений Android во время выполнения Как создать виджет Android с параметрами? Непроверенная конверсия Как реализованы функции Facebook Chat Heads? Как остановить eclipse от автоматического создания фильтров для android logcat? NullPointerException с ListView и setAdapter

Изменить динамическую высоту списка списков?

Этот вопрос задал здесь ссылку

Также я хочу уточнить вопрос, у меня есть 10 элементов списка в Listview. Я хочу, чтобы dividerheight каждого элемента списка по-разному, как и для первого элемента, он должен быть установленDividerheight (2) для второго setDividerheight (4), как это.

Я создал пользовательский Adapeter, в котором я настраиваю свой макет как

Public View getView (int position, View convertView, родительская группа ViewGroup) {View v = super.getView (position, convertView, parent);

if(position ==2) { if (v != convertView && v != null) { ViewHolder holder = new ViewHolder(); // TextView tv = (TextView) v.findViewById(R.id.artist_albums_textview); // holder.albumsView = tv; convertView = mInflater.inflate(R.layout.jazz_artist_list_item, null); holder.albumsView = (TextView)convertView.findViewById(R.id.artist_albums_textview); // lv.setDividerHeight(8); v.setTag(holder); } } else { if (v != convertView && v != null) { ViewHolder holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.jazz_artist_list_item, null); holder.albumsView = (TextView)convertView.findViewById(R.id.artist_albums_textview); // lv.setDividerHeight(2); v.setTag(holder); } } 

Но это кажется неправильным.

Любая идея над этим заключается в том, как динамически устанавливать высоту разделителя Listview

С уважением, Лакшмикант

Solutions Collecting From Web of "Изменить динамическую высоту списка списков?"

 //set Divider as you like listView.setDivider((Drawable) getResources().getDrawable(R.drawable.orange)); //then set the height dynamically listView.setDividerHeight(1); 

В вашей деятельности, которая имеет ListView. Не класс адаптера.

Если вы, что именно вы написали в вопросе. Сделай это:

Пусть каждый макет элемента списка ListView содержит TextView и View (разделитель после каждого элемента), а затем в зависимости от параметра позиции, который вы получаете в методе getView (), измените высоту представления.

Элемент списка ListView:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp" > <TextView android:id="@+id/label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/logo" android:padding="5dp" android:textSize="14dp" > </TextView> <View android:id="@+id/view" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_below="@id/label" android:background="@drawable/orange" /> </RelativeLayout> 1 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp" > <TextView android:id="@+id/label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/logo" android:padding="5dp" android:textSize="14dp" > </TextView> <View android:id="@+id/view" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_below="@id/label" android:background="@drawable/orange" /> </RelativeLayout> 

Теперь в классе адаптера ваш ViewHolder содержит TextView, а также View.

так,

 Holder.View = (View)convertView.findViewById(R.id.view); if(position == 0){ (Holder.View).setHeight(2); } 

и так далее.

Небольшая настройка выше, чтобы она работала для меня (нет метода setHeight () в View?), Спасибо:

 Holder.View = (View)convertView.findViewById(R.id.view); if(position == 0){ (Holder.View).getLayoutParams().height = *your desired height eg 20*; }