android 5.0中的布局对齐问题

时间:2015-02-23 16:34:09

标签: android android-5.0-lollipop android-relativelayout

我有一个布局,其中按钮在RelativeLayout的底部对齐,如下面的代码所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="250dp"
    android:background="@color/background_material_light"
    android:layout_height="match_parent">

<View
    android:layout_alignParentLeft="true"
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:background="@color/strokeColor"/>

<RelativeLayout
    android:id="@+id/rlHeaderFilter"
    android:layout_width="match_parent"
    android:layout_height="@dimen/abc_action_bar_default_height_material">

    <View
        android:id="@+id/separator"
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="@color/strokeColor"/>

    <TextView
        android:background="@color/actionbar_background"
        android:id="@+id/tvFilterText"
        style="@style/textStyleHeading2"
        android:layout_toRightOf="@+id/separator"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:textColor="@color/white"
        android:text="Filter Search" />

    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/refresh"
        android:id="@+id/resetLeadsFilter"
        android:contentDescription="@string/emptyString"
        android:layout_centerVertical="true"
        android:padding="6dp"/>

</RelativeLayout>

<TextView
    android:layout_below="@+id/rlHeaderFilter"
    android:layout_marginTop="10dp"
    android:id="@+id/tvBudgetFromFilter"
    style="@style/textSpinnerStyleHeading"
    android:layout_margin="8dp"
    android:hint="Budget From"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<TextView
    android:layout_below="@+id/tvBudgetFromFilter"
    android:layout_marginTop="10dp"
    android:id="@+id/tvBudgetToFilter"
    style="@style/textSpinnerStyleHeading"
    android:layout_margin="8dp"
    android:hint="Budget To"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<include
    android:layout_marginTop="20dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    android:layout_below="@+id/tvBudgetToFilter"
    android:id="@+id/sourceLayout"
    layout="@layout/source_layout" />

<include
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/statusLayout"
    android:layout_margin="8dp"
    android:layout_below="@+id/sourceLayout"
    layout="@layout/status_layout" />

<Button
    android:layout_alignParentBottom="true"
    android:layout_gravity="bottom"
    android:layout_marginTop="10dp"
    android:textColor="@color/white"
    android:background="@color/actionbar_background"
    android:text="SEARCH"
    android:id="@+id/bFilterLeads"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</RelativeLayout>

我可以看到布局底部的按钮,如屏幕截图所示。它在Lollipop设备中显示如下(低于&lt; 5.0设备):

enter image description here

但是在Lollipop中,底部的按钮不会显示如下屏幕截图所示:

enter image description here

我无法理解,请帮助我。提前致谢 。

2 个答案:

答案 0 :(得分:2)

我已经解决了我的问题!事实上,LinearLayout落后于navigationBar。要修复它,只需将此行添加到Activity(在setContentView();)之后

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);

答案 1 :(得分:1)

我不确定为什么Lollipop / pre-Lollipop之间的布局表现不同(除非有其他部分没有显示)。我会指出,虽然我认为layoutGravity对于RelativeLayout中的观看是有效的 - 这是您在LinearLayout中使用的内容。我首先删除该属性并查看它在前Lollipop上的行为,然后在完成后查看有关更正布局的信息。可能是layoutGravity在Lollipop之前造成某种不正确的行为。