【发布时间】:2018-04-27 21:55:52
【问题描述】:
我有两行垂直放置。两行都包含一个位置图标,后面有一些文本,我将 textview maxlength 设置为 8。
文本大小大于8时没有问题,因为位置图标定位良好,但是当文本大小小于8时,位置图标的位置向右移动。怎么解决?
我想要的只是让第二行的位置图标与第一行的位置相同,然后文本应该跟随。
注意:我不想使用 paddingRight 来实现这一点,因为我打算在不知道最小文本长度的列表视图中使用此布局。
已经添加了布局的图片,xml很长,看图片上的线条就明白了。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="1dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/copyboder4_two"
android:layout_marginBottom="4dp">
<TextView
android:id="@+id/most_lodged_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="77"
android:textSize="11sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="15dp">
<TextView
android:id="@+id/list_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="The Swtich at the LR is faulty, come and fix as possible"
android:layout_marginBottom="4dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingRight="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/list_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="I can perceive that the switch is vertyy.. " />
<ImageView
android:id="@+id/most_complaints_expand"
android:layout_width="16dp"
android:layout_height="14dp"
android:src="@drawable/ic_expand_more_black_18dp"
android:tint="@color/colorPrimaryDark"
android:layout_gravity="bottom" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="42dp"
android:layout_marginTop="9dp"
android:layout_gravity="right">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginRight="7dp">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginRight="3dp"
android:src="@drawable/icons8_manager48" />
<TextView
android:id="@+id/lecturer_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20"
android:textSize="12sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginRight="7dp">
<ImageView
android:layout_width="16dp"
android:layout_height="15dp"
android:layout_marginRight="3dp"
android:src="@drawable/icons8_student_male_48"
android:id="@+id/imageView2" />
<TextView
android:id="@+id/student_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="25"
android:textSize="12sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="16dp"
android:layout_height="15dp"
android:src="@drawable/icons8_marker_40"
android:layout_marginRight="1dp"/>
<TextView
android:id="@+id/location_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mass Comm Lab"
android:maxLength="8"
android:textSize="12sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="30dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="1dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/copyboder4_two"
android:layout_marginBottom="4dp">
<TextView
android:id="@+id/most_lodged_number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="77"
android:textSize="11sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="15dp">
<TextView
android:id="@+id/list_header1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="The Swtich at the LR is faulty, come and fix as
possible"
android:layout_marginBottom="4dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingRight="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/list_detail2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="I can perceive that the switch is vertyy..
"/>
<ImageView
android:id="@+id/most_complaints_expand2"
android:layout_width="16dp"
android:layout_height="14dp"
android:src="@drawable/ic_expand_more_black_18dp"
android:tint="@color/colorPrimaryDark"
android:layout_gravity="bottom" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="42dp"
android:layout_marginTop="9dp"
android:layout_gravity="right">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginRight="7dp">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginRight="3dp"
android:src="@drawable/icons8_manager48" />
<TextView
android:id="@+id/lecturer_number1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20"
android:textSize="12sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginRight="7dp">
<ImageView
android:layout_width="16dp"
android:layout_height="15dp"
android:layout_marginRight="3dp"
android:src="@drawable/icons8_student_male_48"/>
<TextView
android:id="@+id/student_number1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="25"
android:textSize="12sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="16dp"
android:layout_height="15dp"
android:src="@drawable/icons8_marker_40"
android:layout_marginRight="1dp"/>
<TextView
android:id="@+id/location_text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lab 1"
android:maxLength="8"
android:textSize="12sp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
【问题讨论】:
-
我建议你从 LinearLayouts 转移到 ConstraintLayouts。它们会给你一个更干净的解决方案(没有嵌套布局!),但它们也带有指南,这就是你所需要的。看这里:developer.android.com/training/constraint-layout/…
-
为什么maxlength是8,而最上面的那个是10
-
@kuti gbolahan 这是一个错误,两者都应该是 8,现在修复
标签: android android-layout android-linearlayout