片段布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto"
style="@style/CardViewStyle1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/scale_40dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/ivClose"
android:layout_width="@dimen/scale_25dp"
android:layout_height="@dimen/scale_25dp"
android:layout_centerVertical="true"
android:layout_gravity="center"
app:srcCompat="@drawable/close_red" />
</RelativeLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
在片段中
ImageView ivClose;
ivClose = (ImageView) v.findViewById(R.id.ivClose);
ivClose .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("onClick","onClick"); // Cant detect
}
});
我正面临一个关于片段中按钮点击的奇怪问题,试过几个解决方案没有用,我错过了什么吗?任何帮助都会受到赞赏!!!
请在回答之前阅读以下方案:
有两个片段我从1-> 2,2-> 1移动,当我尝试时 访问视图(在我的情况下是ivClose imageview)点击片段(1),它 再次进入2它应该关闭片段(1)并返回 活动,它与设备的默认后退按钮键一起工作。
答案 0 :(得分:1)
只要在活动中定义一个名称相同的方法,onClick属性就可以正常工作。
但是,对于Fragments,需要在调用活动中定义该方法。
为片段中的按钮实现点击监听器可能更容易。
答案 1 :(得分:0)
使用View
1>等findViewById(R.id.btn_close).setOnClickListener(v -> onBackPressed());
正确访问
答案 2 :(得分:0)
抱歉,您无法在Fragment中使用onClicked()方法。
您只能在Activity类中使用。
在Fragments中,你必须从findViewById()方法获取按钮实例,然后应用onClickListener来使用它。