我有frameLayout,它有两个视图。这个frameLayout在另一个frame和relativeLayout里面。
我想添加ImageView点击和长按监听器。单击ImageView时,设置ImageButton touchListener。
我添加clickable, focusable, longClickable and android:descendantFocusability
但它甚至没有进入ImageView的听众的这些部分。
请帮帮我
ImageView imageView = (ImageView) findViewById(R.id.view1);
ImageButton imageButton = (ImageButton) findViewById(R.id.button);
imageView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
button.touchableButton(true);
return true;
}
});
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
button.touchableButton(false);
}
});
public void touchableButton(boolean touchable) {
imageButton.setOnTouchListener(touchable ? this : null);
}
我的布局:
<RelativeLayout
android:id="@+id/grandPaRelative"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/dadFrame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:clipChildren="false"
android:clipToPadding="false">
<FrameLayout
android:id="@+id/momFrame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"
android:clipToPadding="false"
android:descendantFocusability="blocksDescendants">
<ImageButton
android:id="@+id/button"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:adjustViewBounds="true"
android:background="@drawable/circle_tintable"
android:contentDescription="@null"
android:gravity="center"
android:padding="10dp"
android:src="@drawable/abc" />
<ImageView
android:id="@+id/view1"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:adjustViewBounds="true"
android:clickable="true"
android:contentDescription="@null"
android:focusable="true"
android:gravity="center"
android:longClickable="true"
android:padding="15dp"
android:visibility="gone"
app:circleColor="@color/topBar" />
</FrameLayout>
<ImageView
android:id="@+id/view2"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:adjustViewBounds="true"
android:contentDescription="@null"
android:gravity="center"
android:padding="15dp"
android:src="@drawable/view2"
app:circleColor="@color/topBar" />
</FrameLayout>
</RelativeLayout>
答案 0 :(得分:1)
尝试使用return true to false。
ImageView imageView = (ImageView) findViewById(R.id.view1);
ImageButton imageButton = (ImageButton) findViewById(R.id.button);
imageView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
button.touchableButton(true);
return false;
}
});`
答案 1 :(得分:0)
我之前听说过人物的图像隐藏在Frame Layouts后面,这会阻止imageView点击。我可能会尝试删除android:visibility =“gone”并查看是否可以解决问题。如果不是这个线程可能会有帮助:Android ImageView的onClickListener不起作用