0

Я использую простой ListView, в котором каждый элемент содержит только текстовое поле и ничего больше. Вот мой XML-код для элемента списка:Android, как сделать увеличение высоты списка элементов для размещения контента

<?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="?android:attr/listPreferredItemHeight"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="4dp" 
      android:layout_marginBottom="4dp" 
      android:background="@drawable/bg_card"> 


     <TextView 
      android:id="@+id/txt" 
      android:layout_width="fill_parent" 
      android:layout_height="50dp" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:gravity="center_vertical" 
      android:textSize="15sp" 
      android:paddingLeft="6dip" 
      android:textColor="#878787" 
      android:textIsSelectable="true"/> 

     </LinearLayout> 

    </FrameLayout> 

и вот мой макет для фрагмента с помощью представления списка.

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#e5e5e5"> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:dividerHeight="0dp" 
     android:divider="@null"/> 

    </RelativeLayout> 

Теперь, при создании объекта адаптера в моем фрагменте как этот

Level weather_data[] = new Level[] { 
    new Level(R.drawable.s1, 
       "Some text which will be present in the list item",  
       R.drawable.play_button) 
     }; 

Если у меня есть очень длинное предложение в качестве второго параметра, т.е. текст, некоторая его часть не получает отображается, и предложение отображается неполным в элементе списка.

Я попытался использовать android:minHeight, чтобы изменить высоту элемента списка, но он не сработал. Что может быть решением этого? Спасибо

+0

Я думаю, это потому, что вы дали высоту TextView как 50dp.Make он WrapContent взять размер текста. –

+0

@ user2012 нет, он все равно не имеет никакого значения. –

+0

Попробуйте это http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds – VikramV

ответ

0

Достаточно установить контейнер в wrap_content, и при необходимости он будет изменен. Ваш показано расположение не является полным, и я просто подозреваю, что вы, возможно, что-то hardfixed здесь:

android:layout_height="?android:attr/listPreferredItemHeight 

Кроме того, нет никакого реального смысла Планируя обернуть TextView в LinearLayout, а затем все в FrameLayout. Вы можете получить тот же эффект, с подкладкой и Б.Г. переехал в FrameLayout

+0

Извините, но я не понимаю, что именно я должен установить как «wrap_content»? –

0

пытаются установить wrap_content вместо "?android:attr/listPreferredItemHeight" в android:layout_height.

Что-то вроде этого:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
+0

нет, он не работает. Я все еще сталкиваюсь с той же проблемой. –

+0

любой другой способ исправить эту проблему? –

Смежные вопросы