我有这个xml代码:
<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)应该与左对齐 并且TableLayout应该与右边对齐。
除了TableLayout没有与左边对齐外,一切正常。什么错了?
答案 0 :(得分:0)
尝试使用此
<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>
答案 1 :(得分:0)
LinearLayout
不是最好的父母。当方向为layout_gravity
并且右侧的视图宽度为horizontal
并且未填充整个空间时,wrap_content
无法按预期方式工作这个案例。您应该使用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