这对我来说有点出乎意料。我有以下布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/MyButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Hello" />
<EditText
android:id="@+id/MyEditText"
android:layout_below="@id/MyButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Hello" />
<LinearLayout
android:layout_centerInParent="true"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="#ffffffff">
</LinearLayout>
</RelativeLayout>
我期待LinearLayout模糊两个视图的一部分(按钮和EditText。仿真器中的结果就是:
然而,在设备(A Moto G 3rd Generation)上,按钮显示在LinearLayout的顶部:
此外,我仍然可以点击应该被设备和模拟器上的LinearLayout遮挡的部分上的按钮和EditText。
我的问题是:如何让线性布局出现在设备上的按钮顶部?如何防止LinearLayout上的点击被重定向到按钮并编辑文本?
谢谢。
以防万一,我在Android上使用Xamarin,但它并不适用。
答案 0 :(得分:2)
如何让线性布局显示在设备上的按钮顶部?
提升是Button
出现在LinearLayout
前面的原因。前面会出现高度较高的视图。它适用于模拟器,因为您使用的是Android的预材料设计版本。
请参阅:http://developer.android.com/training/material/shadows-clipping.html
&#34;要在布局定义中设置视图的高程,请使用android:elevation
属性。要在活动代码中设置视图的高程,请使用View.setElevation()
方法。&#34;
如何防止LinearLayout上的点按重定向到按钮并编辑文字?
在android:clickable="true"
上使用LinearLayout
。原因是,如果LinearLayout
无法点击,则点击最终会分派到更远的视图。