如何在 android LinearLayout 中将 ImageView 移到最右端?
How to move the ImageView extreme right in android LinearLayout?
这是我的xml。我需要将我的图标放在最右边。但它并没有走向极右翼。 "tri_logo"
我把引力当成正确的了。但仍然没有向右移动。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/lout_profile_header"
android:layout_width="match_parent"
android:layout_height="@dimen/top_view_height"
android:clickable="true"
android:gravity="center"
android:orientation="horizontal">
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:id="@+id/textTopProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/hdr_name_padding" />
<ImageView
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/tri_logo"/>
</LinearLayout>
</LinearLayout>
ImageView tri_logo 没有向右移动。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/lout_profile_header"
android:layout_width="match_parent"
android:layout_height="100dp"
android:clickable="true"
android:gravity="center">
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:id="@+id/textTopProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="100dp" />
<ImageView
android:layout_alignParentRight="true"
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/tri_logo"/>
</RelativeLayout>
</LinearLayout>
将您的 ImageView
包裹在 RelativeLayout
中 match_parent
宽度并使用
android:layout_alignParentRight="true"
像这样:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:src="@drawable/tri_logo"/>
</RelativeLayout>
试试这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical">
<LinearLayout
android:id="@+id/lout_profile_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:weightSum="3"
android:layout_gravity="right"
android:orientation="horizontal">
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_weight="1"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:layout_weight="1"
android:id="@+id/textTopProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
/>
<ImageView
android:layout_weight="1"
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/voyage"/>
</LinearLayout>
</LinearLayout>
您可以先使用 RelativeLayout,然后再使用 layout_alignParentEnd=true
,如果您想坚持 LinearLayout
,请尝试上面的
使用 LinearLayout 提供的工具。为您的子视图赋予权重并将父布局的重力更改为右侧
使用 RelatiVeLayout
作为直接父级。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/lout_profile_header"
android:layout_width="match_parent"
android:layout_height="@dimen/top_view_height"
android:clickable="true"
>
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_centerVertical="true"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:id="@+id/textTopProfile"
android:layout_width="match_parent"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_toLeftOf="@+id/tri_logo"
android:layout_toRightOf="@+id/imgTopProfile"
android:layout_marginLeft="@dimen/hdr_name_padding" />
<ImageView
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_centerVertical="true"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:src="@drawable/tri_logo"/>
</RelativeLayout>
</LinearLayout>
这是我的xml。我需要将我的图标放在最右边。但它并没有走向极右翼。 "tri_logo"
我把引力当成正确的了。但仍然没有向右移动。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/lout_profile_header"
android:layout_width="match_parent"
android:layout_height="@dimen/top_view_height"
android:clickable="true"
android:gravity="center"
android:orientation="horizontal">
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:id="@+id/textTopProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/hdr_name_padding" />
<ImageView
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/tri_logo"/>
</LinearLayout>
</LinearLayout>
ImageView tri_logo 没有向右移动。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/lout_profile_header"
android:layout_width="match_parent"
android:layout_height="100dp"
android:clickable="true"
android:gravity="center">
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:id="@+id/textTopProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="100dp" />
<ImageView
android:layout_alignParentRight="true"
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/tri_logo"/>
</RelativeLayout>
</LinearLayout>
将您的 ImageView
包裹在 RelativeLayout
中 match_parent
宽度并使用
android:layout_alignParentRight="true"
像这样:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:src="@drawable/tri_logo"/>
</RelativeLayout>
试试这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical">
<LinearLayout
android:id="@+id/lout_profile_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:weightSum="3"
android:layout_gravity="right"
android:orientation="horizontal">
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_weight="1"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:layout_weight="1"
android:id="@+id/textTopProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
/>
<ImageView
android:layout_weight="1"
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/voyage"/>
</LinearLayout>
</LinearLayout>
您可以先使用 RelativeLayout,然后再使用 layout_alignParentEnd=true
,如果您想坚持 LinearLayout
,请尝试上面的
使用 LinearLayout 提供的工具。为您的子视图赋予权重并将父布局的重力更改为右侧
使用 RelatiVeLayout
作为直接父级。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toplayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/lout_profile_header"
android:layout_width="match_parent"
android:layout_height="@dimen/top_view_height"
android:clickable="true"
>
<com.test.customviews.CircleImageView
android:id="@+id/imgTopProfile"
android:layout_width="@dimen/profilie_icon_size"
android:layout_height="@dimen/profilie_icon_size"
android:layout_centerVertical="true"
android:layout_margin="@dimen/hdr_img_padding"
android:src="@mipmap/ic_profile" />
<TextView
android:id="@+id/textTopProfile"
android:layout_width="match_parent"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_toLeftOf="@+id/tri_logo"
android:layout_toRightOf="@+id/imgTopProfile"
android:layout_marginLeft="@dimen/hdr_name_padding" />
<ImageView
android:id="@+id/tri_logo"
android:layout_width="30dp"
android:layout_centerVertical="true"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:src="@drawable/tri_logo"/>
</RelativeLayout>
</LinearLayout>