2016-05-24 4 views
1

Я пытаюсь создать собственный макет элемента списка, но у меня возникла проблема. Смотрите пример ниже:Плагин Android с wrap_content

Эффективное функционирование

Effective functioning

Этот вопрос

The Issue

Проблема состоит в том, когда зеленый прямоугольник заполняет все синим коробку (ширина устанавливается как wrap_content), потому что зеленый квадрат исчез. Квадрат должен быть справа от зеленого прямоугольника, но размер этого прямоугольника может измениться, и я не могу исправить зеленый квадрат справа от синего квадрата.

Красные прямоугольники фиксированы, и они не являются проблемой.

Для этого я использую некоторые LinearLayout и RelativeLayout, но он не работает, как я желаю. Я также не могу использовать атрибут drawableRight, потому что в ближайшем будущем будут два значка (зеленый квадрат) вместо одного.

Если кто-то уже столкнулся с этой проблемой или имеет способ решить эту проблему.

Требуемая результат:

[[ListIconView] [[Некоторый текст здесь] [Icon]] < ..... пустое место .....> [х] [у] [г] ]

[[ListIconView] [[Длинный текст из .......] [Значок]] <. пустое место ..> [x] [y] [z]]

[[ListIconView] [[Очень длинный текст из старой книги ....] [Значок]] [x] [y] [z ]]

x, y и z - значки.

+1

Пожалуйста, включите код. –

+1

Пожалуйста, добавьте соответствующие файлы макета. –

+0

EDIT начальный пост – Cylon

ответ

0

Предполагая, что красный квадрат и прямоугольник не проблема (возможно, родительский макет RelativeLayout), и у вас есть TextView и ImageView как зеленый прямоугольник и зеленый квадрат, использовать

android:layout_weight="1" 

для TextView (зеленый прямоугольник)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Some very looooooooooooooooooooooooooooooooooooooooooooooooong text here" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/my_image" /> 

</LinearLayout> 
0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="100"> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="20" 
     android:text="blablah"/> 

    <LinearLayout 
     android:layout_weight="60" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:weightSum="100"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="80" 
      android:text="test string string string"/> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="20" 
      android:text="String test"/> 

    </LinearLayout> 

    <ImageButton 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="20"/> 

</LinearLayout> 

что я выше, что я задаю пространство на основе процента для каждого из I tem Я хочу поместиться в корневой макет, который является LinearLayout, из общего весаSum 100%. ImageView займет 20% пространства, а затем еще один LinearLayout, который займет 60%, и, наконец, ImageButton, который занимает 20%, тоже

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