相对布局 属性 问题

Relativelayout property issue

我想创建如下图所示的工具栏布局。

我在下面编写了创建此视图的代码。请查看我的 xml 代码。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/_40sdp"
        android:background="@color/black"
        android:padding="@dimen/_5sdp">

        <ImageView
            android:id="@+id/toolbar_default_img_menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_menu" />

        <TextView
            android:id="@+id/toolbar_default_textview_title"
            style="@style/textview_normal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toEndOf="@+id/toolbar_default_img_menu"
            android:layout_toStartOf="@+id/toolbar_default_img_search"
            android:text="@string/app_name"
            android:textColor="@color/white"
            android:textSize="@dimen/_15ssp" />

        <ImageView
            android:id="@+id/toolbar_default_img_search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toStartOf="@+id/toolbar_default_img_filter_tag"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_search" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter_tag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toStartOf="@+id/toolbar_default_img_filter"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_filter" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_filter" />

    </RelativeLayout>

写完这段代码后,我可以在 android studio 预览中看到我的视图是正确的,但是当我 运行 我的项目时,它看起来像下图。

只有左和右 imageview 在正确的位置,但我的 textview 和其他两个 imageview 在 运行 这段代码后没有设置在正确的位置。

android:layout_toEndOfandroid:layout_toStartOf 属性 可能有问题 RelativeLayout

不知道为什么会出现这个问题create.Thank求助

您需要将它们添加为应用栏上的操作按钮

https://developer.android.com/training/appbar/actions.html

您需要添加

android:layout_toLeftOf

连同

android:layout_toStartOf

android:layout_toRightOf

android:layout_toEndOf

尝试使用 layout_alignParentRightlayout_toLeftOflayout_toRightOflayout_alignParentLeft 而不是 layout_alignParentEndlayout_toStartOflayout_toEndOflayout_alignParentStart 或在布局中使用两者

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="@color/black"
        android:padding="5dp">

        <ImageView
            android:id="@+id/toolbar_default_img_menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:padding="5dp"
            android:src="@drawable/add_btn" />

        <TextView
            android:id="@+id/toolbar_default_textview_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/toolbar_default_img_menu"
            android:layout_toLeftOf="@+id/toolbar_default_img_search"
            android:text="@string/app_name"
            android:textColor="@color/white"
            android:textSize="15sp" />

        <ImageView
            android:id="@+id/toolbar_default_img_search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/toolbar_default_img_filter_tag"
            android:padding="5dp"
            android:src="@drawable/add_btn" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter_tag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/toolbar_default_img_filter"
            android:padding="5dp"
            android:src="@drawable/add_btn" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:padding="5dp"
            android:src="@drawable/add_btn" />

    </RelativeLayout>
</RelativeLayout>

替换此代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/_40sdp"
    android:background="@color/black"
    android:padding="@dimen/_5sdp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:gravity="center_vertical"
        android:layout_centerVertical="true"
        android:orientation="horizontal"
        >
        <ImageView
            android:id="@+id/toolbar_default_img_menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/ic_launcher_background" />

        <TextView
            android:id="@+id/toolbar_default_textview_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:maxEms="50"
            android:text="@string/app_name" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/toolbar_default_img_search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_search" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter_tag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_filter" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_filter" />
    </LinearLayout>

</RelativeLayout>

根据您的要求通过填充和边距进行更改以进行适当的设计。

添加

android:layout_toLeftOf:

连同

android:layout_toStartOf:

 android:layout_toRightOf:

 android:layout_toEndOf:

因为您需要支持较低的 API 版本。