单击时不要将按钮置于前台
Don't bring button to foreground on click
我的应用目前如下所示。 RelativeLayout
中的三个 Button
,中间按钮的左右边距为负边距,与其他两个按钮重叠。
问题: 当我点击左键或右键时,它会跳到前台一秒钟并与中间按钮重叠,非常难看。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/voices"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="clickVoices"
android:background="#333"
android:textColor="#fff"
android:text="@string/main_voices" />
<Button
android:id="@+id/chat"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="clickChat"
android:background="#333"
android:textColor="#fff"
android:text="@string/main_chat" />
<Button
android:id="@+id/record"
android:layout_width="60dp"
android:layout_height="100dp"
android:clickable="true"
android:onClick="clickRecord"
android:scaleType="centerInside"
android:src="@drawable/record"
android:text="Record"
android:layout_toRightOf="@+id/voices"
android:layout_toLeftOf="@+id/chat"
android:layout_marginLeft="-20dp"
android:layout_marginRight="-20dp"
android:layout_marginTop="-30dp"
android:background="@drawable/round_button"
android:paddingTop="30dp"
android:layout_marginBottom="10dp" />
</RelativeLayout>
使用框架布局。您放入其中的所有物品都堆叠在一起。
或尝试:
将图像视图放在上方(在顶部 - 父级的第一个子级)
xml 文件中的布局,这样图像将位于布局后面。
使用按钮应该没有关系,应该是一样的。
希望对你有帮助。
我从这个 link
中得到了这些信息
编辑:
这就是我使用您的代码并将其转换为框架布局时的样子,也许我缺少某些东西,因为我无法在模拟器 atm 上启动它。
默认按钮在被触摸时有 运行 的动画,并使用 StateListAnimator
to do this. The animations that elevate the button changes the android:elevation
and android:translateZ
properties of the view。
要防止此动画,只需通过设置停止此视图上 运行 的动画:
android:stateListAnimator="@null"
我的应用目前如下所示。 RelativeLayout
中的三个 Button
,中间按钮的左右边距为负边距,与其他两个按钮重叠。
问题: 当我点击左键或右键时,它会跳到前台一秒钟并与中间按钮重叠,非常难看。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/voices"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="clickVoices"
android:background="#333"
android:textColor="#fff"
android:text="@string/main_voices" />
<Button
android:id="@+id/chat"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="clickChat"
android:background="#333"
android:textColor="#fff"
android:text="@string/main_chat" />
<Button
android:id="@+id/record"
android:layout_width="60dp"
android:layout_height="100dp"
android:clickable="true"
android:onClick="clickRecord"
android:scaleType="centerInside"
android:src="@drawable/record"
android:text="Record"
android:layout_toRightOf="@+id/voices"
android:layout_toLeftOf="@+id/chat"
android:layout_marginLeft="-20dp"
android:layout_marginRight="-20dp"
android:layout_marginTop="-30dp"
android:background="@drawable/round_button"
android:paddingTop="30dp"
android:layout_marginBottom="10dp" />
</RelativeLayout>
使用框架布局。您放入其中的所有物品都堆叠在一起。
或尝试:
将图像视图放在上方(在顶部 - 父级的第一个子级) xml 文件中的布局,这样图像将位于布局后面。
使用按钮应该没有关系,应该是一样的。 希望对你有帮助。
我从这个 link
中得到了这些信息编辑:
这就是我使用您的代码并将其转换为框架布局时的样子,也许我缺少某些东西,因为我无法在模拟器 atm 上启动它。
默认按钮在被触摸时有 运行 的动画,并使用 StateListAnimator
to do this. The animations that elevate the button changes the android:elevation
and android:translateZ
properties of the view。
要防止此动画,只需通过设置停止此视图上 运行 的动画:
android:stateListAnimator="@null"