添加按钮时展开ListView不起作用

时间:2016-12-04 04:58:07

标签: android listview expandablelistview

我尝试使用以下博客https://wirasetiawan29.wordpress.com/2016/01/20/membuat-expand-listview-material-design-di-android/

中的代码展开ListView方法

一切正常。但是如果我在FrameLayout中添加一个按钮,那么listview项目的touchevent将无法正常工作。我还尝试将FrameLayout更改为Relative&也是线性的,但仍然没有成功。

<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>

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据框架布局description by Google's documentation ...

  

FrameLayout旨在阻挡屏幕上要显示的区域   单个项目。通常,FrameLayout应该用于保存单个   子视图,因为它可能很难组织子视图   在没有孩子的情况下可以扩展到不同屏幕尺寸的方式   相互重叠。但是,您可以将多个子项添加到a   FrameLayout并控制它们在FrameLayout中的位置   使用android:layout_gravity为每个孩子分配重力   属性。

因此,您的原始TextView实际上是由Button(Share)重叠。您可以使用 android:layout_gravity =&#34;右键&#34; 将按钮放在屏幕的右端,但是,您必须为TextView修复字符串的最大长度,这样它就不会被右边的按钮重叠。

如果您没有任何问题,我建议您使用LinearLayout吗? GPU更容易处理和渲染(据我所知)。这是您商品的示例代码......

<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。 我希望它能回答你的问题。干杯!