android - 为什么android GridView项目里面的按钮无法点击?

标签 android gridview android-button

GridView onItemClick 不起作用。Button OnClickListener 可以工作。 当我从中删除按钮时,GridView onItemClick 起作用。
任何解决方案请帮助我。

<?xml version="1.0" encoding="utf-8"?>
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:paddingTop="5dp"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/thumbnail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"
            android:scaleType="fitCenter"/>
        <TextView
            android:id="@+id/name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLines="2"
            android:textColor="@android:color/darker_gray"
            android:padding="5dp"
            android:textSize="14sp"/>
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="30dp">
            <TextView
                android:id="@+id/text1"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="right"
                android:layout_alignParentRight="true"
                android:gravity="center_vertical"
                android:text=""/>
            <TextView
                android:id="@+id/text2"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_toLeftOf="@+id/text1"
                android:layout_gravity="right"
                android:gravity="center_vertical"
                android:layout_marginRight="10dp"
                android:text=""
                android:textColor="@android:color/holo_red_dark"/>

        </RelativeLayout>
        <Button
            android:id="@+id/add_to_cart"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/add_button"
            android:layout_marginBottom="5dp"
            android:textColor="@android:color/white"
            android:text="Add"/>
    </LinearLayout>

最佳答案

添加

android:descendantFocusability="blocksDescendants"

在自定义 GridView 项目的 Root View 中

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

关于android - 为什么android GridView项目里面的按钮无法点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36806746/

相关文章:

android - 如何以缩略图形式显示视频网址?

android - 禁用按钮文本中的修剪

android - 滚动到表单元素

.net - ASP.NET Gridview - 如何垂直更改颜色属性?

android - 我在查询一个值时经常出现 SQLiteDoneException,为什么?

android - 如何重置 GridView 中的所有 ImageView 背景?

android - Material 按钮中定义的样式与 AppTheme 不兼容

Android studio自定义按钮样式填充问题

java - 为什么使用 RealmResults 时我的 Robolectric 测试失败?

android - 在 Android 中将参数传递给 AlertDialog