我希望我的Android应用程序中的ListView中的项目包含左侧的复选框,后跟一些文本,后跟一个按钮。我希望复选框和按钮与文本基线对齐。为实现这一点,我将所有三个放在LinearLayout中,默认情况下尝试基线对齐其项目。这很有效,除了多行文本的底线总是被剪裁。
以下是它的外观示例:
StackOverflow上有一个related question,建议的解决方案是为TextView设置layout_gravity =“fill”,但是在禁用基线对齐时会失败。是否有任何解决方案可以让我保持基线对齐?这似乎是一个非常基本的问题,肯定是很多人必须遇到的。
我发现的唯一其他解决方案是在文本视图的底部添加一些填充,但这看起来很乱,并且对字体大小不健壮。我可以根据字体大小从代码中按程序设置填充,但似乎获取正确的值可能很棘手。
以下是说明问题的示例布局:
<?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:paddingBottom="8dp"
android:paddingTop="8dp"
android:baselineAligned="true">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="9dp"
android:layout_marginRight="8dp"
android:textSize="16sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Woah, this is a long text line, enough that tit has to wrap to multiple lines, thus demonstrating our problem. In fact, it wraps to multiple lines! So many lines! I hope they all show up correctly!"
android:textSize="16sp"/>
<FrameLayout
android:layout_width="40dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:src="@drawable/ic_note_check_delete"/>
</FrameLayout>
</LinearLayout>
答案 0 :(得分:0)
我最终通过将TextView
的布局重力更改为center_vertical
来解决类似的问题。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />