相对布局 属性 问题
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_toEndOf
和 android:layout_toStartOf
属性 可能有问题 RelativeLayout
。
不知道为什么会出现这个问题create.Thank求助
您需要将它们添加为应用栏上的操作按钮
您需要添加
android:layout_toLeftOf
连同
android:layout_toStartOf
和
android:layout_toRightOf
和
android:layout_toEndOf
尝试使用 layout_alignParentRight
、 layout_toLeftOf
、 layout_toRightOf
、layout_alignParentLeft
而不是 layout_alignParentEnd
、 layout_toStartOf
、 layout_toEndOf
和layout_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 版本。
我想创建如下图所示的工具栏布局。
我在下面编写了创建此视图的代码。请查看我的 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_toEndOf
和 android:layout_toStartOf
属性 可能有问题 RelativeLayout
。
不知道为什么会出现这个问题create.Thank求助
您需要将它们添加为应用栏上的操作按钮
您需要添加
android:layout_toLeftOf
连同
android:layout_toStartOf
和
android:layout_toRightOf
和
android:layout_toEndOf
尝试使用 layout_alignParentRight
、 layout_toLeftOf
、 layout_toRightOf
、layout_alignParentLeft
而不是 layout_alignParentEnd
、 layout_toStartOf
、 layout_toEndOf
和layout_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 版本。