我有以下按钮状态
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:src="@drawable/ribbon_popular" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|start"
android:layout_margin="10dp"
android:background="@drawable/roundedcorners_green"
android:textAlignment="center"
android:textAllCaps="true"
android:textColor="@color/white_color"
android:textSize="22sp" />
</RelativeLayout>
并在代码中:
image.bringToFront();
ViewCompat.setElevation(image, 6);
然而,当按下按钮时,它会覆盖“POPULAR”徽章,如下所示:
我尝试添加以下代码,以便在按钮处于按下状态时尝试将图像向前移动,但它不适用于按住状态,有时仅适用于点击事件:
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_DOWN ||
motionEvent.getAction() == MotionEvent.ACTION_BUTTON_PRESS ||
motionEvent.getAction() == MotionEvent.ACTION_HOVER_ENTER) {
popularBadge.bringToFront();
ViewCompat.setElevation(popularBadge, 12);
parentLayout.invalidate();
}
return false;
}
});
任何想法如何使图像视图始终位于按钮上方而不必使用FrameLayout?
提前致谢
答案 0 :(得分:0)
试试这个:将imageview放在按钮下面,我猜它会被修复:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|start"
android:layout_margin="10dp"
android:stateListAnimator="@null"
android:background="@drawable/roundedcorners_green"
android:textAlignment="center"
android:textAllCaps="true"
android:textColor="@color/white_color"
android:textSize="22sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:src="@drawable/ribbon_popular" />
</RelativeLayout>
这个答案取决于z-index
的属性。如果它解决了,请阅读它。