我想使Fold
的右边与Hello
的基线对齐。
我想知道我可以在LinearLayout
中这样做吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="locale"
android:textDirection="locale"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/text_views"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:orientation="vertical">
<TextView
android:id="@+id/header"
android:text="Hello"
android:textSize="17sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
/>
<TextView
android:id="@+id/description_text"
android:text="Just say hello to everybody"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
/>
</LinearLayout>
<Space
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
/>
<TextView
android:id="@+id/dismiss_btn"
android:text="Fold"
android:textSize="13sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:layout_alignBaseline="@+id/header"
android:layout_gravity="center|end"
/>
</LinearLayout>
答案 0 :(得分:1)
您可以尝试这种方法:
<?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="wrap_content"
android:layoutDirection="locale"
android:orientation="vertical"
android:textDirection="locale">
<TextView
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="Hello"
android:layout_alignParentStart="true"
android:gravity="bottom"
android:textSize="17sp" />
<TextView
android:id="@+id/dismiss_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:layout_alignBaseline="@+id/header"
android:layout_alignParentEnd="true"
android:text="Fold"
android:textSize="13sp" />
<TextView
android:id="@+id/description_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:layout_below="@+id/space"
android:text="Just say hello to everybody"
android:textSize="12sp" />
<Space
android:id="@+id/space"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_below="@+id/header"
android:layout_weight="1" />
</RelativeLayout>
答案 1 :(得分:0)
我不知道使用weight
模拟android:layout_alignBaseline
是否合适,但似乎可行。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="locale"
android:textDirection="locale"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/text_views"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:orientation="vertical">
<TextView
android:id="@+id/header"
android:text="Hello"
android:textSize="17sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
/>
<TextView
android:id="@+id/description_text"
android:text="Just say hello to everybody"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
/>
</LinearLayout>
<Space
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
/>
<LinearLayout
android:id="@+id/text_label"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:orientation="vertical">
<TextView
android:id="@+id/dismiss_btn"
android:text="Fold2"
android:textSize="13sp"
android:layout_width="wrap_content"
android:layout_weight="0.57"
android:layout_height="0dp"
android:includeFontPadding="false"
android:layout_gravity="center|end"
android:gravity="bottom"
/>
<Space
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="0.43"
/>
</LinearLayout>
</LinearLayout>
使用左侧的文字大小:17sp
和12sp
,上方文本视图的权重应为17 / (17+12) = 0.59
。但是我发现0.57
具有更好的对齐方式。