在顶部布局的中间排列imageview

时间:2018-05-24 03:56:20

标签: android positioning android-relativelayout

我有一个这样的布局,带有自定义顶部标题。我希望ImageView位于标题的中间,即center_horizo​​ntal。我试着为布局设置布局重力和重力,但有时候还可以。但是当我在横向模式下尝试应用程序时,徽标转到一侧,图像位于布局的正确中心。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/phoneoptLayout"
android:background="@mipmap/bgg"
android:paddingBottom="5dp"
android:orientation="vertical"
android:paddingLeft="5dp"
android:paddingRight="6dp">

<LinearLayout
    android:id="@+id/top"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/back"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="left"
        android:layout_marginLeft="5dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:paddingTop="10dp"
        android:src="@drawable/arrow_back" />

    <ImageView android:src="@mipmap/logo"
        android:layout_width="wrap_content"
        android:layout_height="55dp"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:layout_marginRight="30dp"
        android:layout_gravity="center_horizontal" />

</LinearLayout>
</LinearLayout>

在另一个布局中,我在标题右侧有一个退出按钮。这也不是中心。我是android的新手,所以我不知道会纠正这个。

6 个答案:

答案 0 :(得分:2)

我希望这对你有用。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/phoneoptLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="6dp">

    <ImageView
        android:id="@+id/back"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_centerInParent="true"
        android:layout_marginLeft="10dp"
        android:src="@mipmap/ic_launcher" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="55dp"
        android:layout_centerInParent="true"
        android:layout_gravity="center_horizontal"
        android:layout_marginRight="30dp"
        android:src="@mipmap/ic_launcher" />

</RelativeLayout>

答案 1 :(得分:0)

用相对布局替换线性布局。你也有顶级的相对布局,但你有封闭的线性布局。

答案 2 :(得分:0)

您在LinearLayout中使用了<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/phoneoptLayout" android:background="@mipmap/ic_launcher" android:paddingBottom="5dp" android:orientation="vertical" android:paddingLeft="5dp" android:paddingRight="6dp"> <LinearLayout android:id="@+id/top" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:orientation="horizontal"> <ImageView android:id="@+id/back" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="left" android:layout_marginLeft="5dp" android:layout_marginStart="10dp" android:layout_marginTop="10dp" android:paddingTop="10dp" android:src="@drawable/send_video" /> <ImageView android:src="@mipmap/ic_launcher" android:layout_width="wrap_content" android:layout_height="55dp" android:paddingBottom="5dp" android:paddingTop="5dp" android:layout_marginRight="30dp" android:layout_gravity="center_horizontal" /> </LinearLayout> </RelativeLayout> 。您将在顶部布局的中间放置LinearLayout。

例如:

while ( $query_custom->have_posts() ) : $query_custom->the_post();
    include( locate_template( 'content-' . $style . '.php' ) );
endwhile; 

答案 3 :(得分:0)

做你的linearlayout宽度&#34; match_parent&#34; 像这样

 <LinearLayout
    android:id="@+id/top"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

答案 4 :(得分:0)

使LinearLayout的高度和宽度与父级和重心匹配

    <LinearLayout
     android:id="@+id/top"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
     android:layout_gravity="center">

答案 5 :(得分:0)

您可以尝试使用以下代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/phoneoptLayout"
android:background="@mipmap/bgg">

    <RelativeLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/back"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_gravity="left"
            android:layout_centerVertical="true"
            android:src="@drawable/arrow_back" />

        <ImageView 
            android:src="@mipmap/logo"
            android:layout_width="wrap_content"
            android:layout_height="55dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" />

    </RelativeLayout>
</RelativeLayout>