Android 线性布局不是';t向右对齐
我有以下xml代码:Android 线性布局不是';t向右对齐,android,view,alignment,Android,View,Alignment,我有以下xml代码: <LinearLayout android:layout_width="wrap_content" android:layout_height="140dp"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/imageprofile" android:layout_width="120dp"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="140dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageprofile"
android:layout_width="120dp"
android:layout_height="110dp"
android:layout_gravity="right|center"
android:layout_margin="35dp" />
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:paddingLeft="15dp">
<TableRow
android:id="@+id/tableRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center">
<TextView
android:id="@+id/tvFullName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:fontFamily="sans-serif-light"
android:text=""
android:textSize="30dp"
android:textStyle="bold" />
</TableRow>
<TableRow
android:gravity="center"
android:layout_gravity="center"
android:id="@+id/tableRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:text="Small Text"
android:textSize="15dp"
android:textStyle="italic" />
</TableRow>
</TableLayout>
</LinearLayout>
在这段代码中,图像(id:imageprofile)应该向左对齐
桌子的布局应该向右对齐
一切正常,只是桌面布局没有向左对齐。怎么了?试试这个
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="140dp"
android:orientation="horizontal"
>
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageprofile"
android:layout_width="120dp"
android:layout_height="110dp"
android:layout_margin="35dp" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="15dp">
<TableRow
android:id="@+id/tableRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center">
<TextView
android:id="@+id/tvFullName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:fontFamily="sans-serif-light"
android:text=""
android:textSize="30dp"
android:textStyle="bold" />
</TableRow>
<TableRow
android:gravity="center"
android:layout_gravity="center"
android:id="@+id/tableRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:text="Small Text"
android:textSize="15dp"
android:textStyle="italic" />
</TableRow>
</TableLayout>
</LinearLayout>
LinearLayout
不是这种情况下使用的最佳父级<当方向为水平方向时,代码>布局重力的工作方式与您期望的不一样,并且右侧视图的宽度为内容且不会像本例中那样填满整个空间。您应该使用RelativeLayout
或ConstraintLayout
。下面是一个使用RelativeLayout
的示例:
<?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="140dp"
android:orientation="horizontal">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageprofile"
android:layout_width="120dp"
android:layout_height="110dp"
android:layout_alignParentStart="true"
android:layout_margin="35dp"/>
<TableLayout
android:id="@+id/tablelayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center">
<TextView
android:id="@+id/tvFullName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:fontFamily="sans-serif-light"
android:text=""
android:textSize="30dp"
android:textStyle="bold"/>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center">
<TextView
android:id="@+id/tvUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:text="Small Text"
android:textSize="15dp"
android:textStyle="italic"/>
</TableRow>
</TableLayout>
</RelativeLayout>
而且,您应该确保不会在与
TableRow
s相同的布局中复制ID。请显示屏幕截图。我会给我一点时间。我不能显示屏幕截图,但选项卡布局会向左对齐并连接到图像,而不是在线性布局的边界处向右。您在上面的哪个位置使用tableLayout代码我看不到,你说它在那里是什么意思。