2016-12-04 3 views
0

Я попытался расширить метод ListView с помощью кода из следующего блога, https://wirasetiawan29.wordpress.com/2016/01/20/membuat-expand-listview-material-design-di-android/Развернуть ListView не работает при добавлении кнопки

Все работает отлично. Но если я добавлю кнопку в FrameLayout, то touchhevent для элемента listview не будет работать должным образом. Также я попытался изменить FrameLayout на Relative & также на Linear, но все равно не получилось.

<FrameLayout 
    android:id="@+id/wrapper" 
    android:layout_below="@+id/rl_title_wrapper" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.AppCompatTextView 
     android:id="@+id/deskripsi" 
     android:padding="16dp" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:text="Share"/> 
</FrameLayout> 

Заранее спасибо.

ответ

0

Согласно рамы Layout description by Google's documentation ...

FrameLayout разработан, чтобы блокировать область на экране, чтобы отобразить один пункт. Как правило, FrameLayout следует использовать для хранения единственного дочернего вида , потому что может быть сложно организовать дочерние представления в режиме , который масштабируется до разных размеров экрана без того, чтобы дети перекрывали друг друга. Тем не менее, вы можете добавить несколько дочерних элементов в FrameLayout и управлять их позицией в FrameLayout на , присваивая тяжести каждому ребенку, используя атрибут android: layout_gravity .

Следовательно, ваш оригинальный TextView фактически перекрывается кнопкой (Share). Однако вы можете использовать android: layout_gravity = "right", чтобы расположить кнопку в правом конце экрана, тогда вам нужно будет исправить максимальную длину строки для TextView, чтобы она не перекрывалась Кнопка справа.

Если у вас нет проблем, могу предложить вам использовать LinearLayout? Его легче обрабатывать и визуализировать с помощью графического процессора (насколько я знаю). Вот пример кода вашего пункта ...

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/wrapper" 
android:layout_below="@+id/rl_title_wrapper" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
> 
<TextView 
    android:id="@+id/deskripsi" 
    android:padding="16dp" 
    android:layout_weight="1" 
    android:layout_gravity="left|center" 
    android:text="This is a big chunk of description for your listView item. you can write as much as you want...." 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Share" 
    android:layout_gravity="right|center"/> 
</LinearLayout> 

Вы также можете использовать RelativeLayout и GridLayout здесь. Надеюсь, он ответит на ваш вопрос. Ура!

+0

Я уже пробовал это, а также с относительной компоновкой, но без успеха. –

+0

Что вы сейчас получаете? –

+0

touchhevent для элемента списка не работает должным образом –