如何使用多行创建正确显示的视图?

时间:2016-05-10 13:31:38

标签: android user-interface

我使用一个列表来显示一堆包含多个文本的项目。我想在每个项目中有2个TextView对象。我的问题是,当用户更改文本大小时,我无法调整属性以保持正常(例如:当用户有眼睛问题时,他可能会增加系统字体大小。)这完全破坏了我的观点。

第一个文本应该在我的布局中心之上,第二个文本应该在中心之下,但它们不应该在不同的字体大小上“合并”。我想在文本中插入一个View并将文本格式化为相对于中心(不可见)视图放置,但听起来有点hackish和无效。什么是最好的方法?

我当前的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="72dp">

<android.support.v7.widget.AppCompatImageView
    android:id="@+id/icon"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="16dp"
    android:layout_marginStart="16dp"/>

<android.support.v7.widget.AppCompatTextView
    android:id="@+id/upper_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignTop="@+id/icon"
    android:layout_marginEnd="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    android:layout_toEndOf="@id/icon"
    android:layout_toRightOf="@+id/icon"
    android:singleLine="true"
    android:textSize="16sp" />

<android.support.v7.widget.AppCompatTextView
    android:id="@+id/lower_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/upper_text"
    android:layout_alignParentBottom="true"
    android:layout_alignStart="@+id/upper_text"
    android:layout_marginBottom="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginRight="16dp"
    android:singleLine="true"
    android:textSize="14sp" />
</RelativeLayout>

我知道我应该摆脱底部边缘和对齐父亲的东西,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

使用recyclerview,可以非常轻松地将数据更新为布局。 Try this link for that