Button和EditText之上的Android视图并不会模糊它们

时间:2016-04-29 16:49:01

标签: android android-layout

这对我来说有点出乎意料。我有以下布局文件:

<?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。仿真器中的结果就是:

emulator screenshot

然而,在设备(A Moto G 3rd Generation)上,按钮显示在LinearLayout的顶部:

result on the device

此外,我仍然可以点击应该被设备和模拟器上的LinearLayout遮挡的部分上的按钮和EditText。

clicking on the controls behind the linear layout

我的问题是:如何让线性布局出现在设备上的按钮顶部?如何防止LinearLayout上的点击被重定向到按钮并编辑文本?

谢谢。

以防万一,我在Android上使用Xamarin,但它并不适用。

1 个答案:

答案 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无法点击,则点击最终会分派到更远的视图。