我有一个如下所示的布局。总共有五个类似的选项卡。当我在代码中将 onClickListener 设置为 LinearLayout tab_dashboard时,没有触发任何内容。我还必须将单击侦听器设置为图像按钮和文本视图,以使整个区域可单击。我尝试设置所有子项目可点击="假"和重复父状态="真",没有运气。我还尝试将ImageButton更改为ImageView,同样的问题。有人对此有想法吗?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/tab_dashboard"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/white"
android:gravity="center"
android:orientation="vertical">
<ImageButton
android:id="@+id/dashboard_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@android:color/white"
android:src="@drawable/ic_dashboard" />
<TextView
android:id="@+id/dashboard_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/dashboard"
android:textSize="10sp" />
</LinearLayout>
<!-- Four more similar tabs -->
</LinearLayout
在 TextView 和 ImageView 中添加 android:clickable="false" 和android:focusable="false">
在活动中添加以下代码。
((ImageView) findViewById(R.id.dashboard_button)).setOnClickListener(null);
((ImageView) findViewById(R.id.dashboard_button)).setFocusable(false);
((TextView) findViewById(R.id.dashboard_text)).setOnClickListener(null);
((TextView) findViewById(R.id.dashboard_text)).setFocusable(false);
我通过将android:layout_width="0dp"和android:layout_weight="1"替换为其他达到相同效果的方式解决了这个问题。我想安卓:layout_width="0dp"可能是这个问题的原因。