如何创建三行Listview项?

时间:2017-11-17 18:29:10

标签: android listview material-design

我的Listview(like this one)上有三行项目,但我希望将其更改为this other。我想要做的是在副标题(黑色标记)和补充文本(灰色标记)之间使用这个“ - ”分隔符,我希望补充文本位于第二行和第三行。

这是我用于我的项目的代码(不包括头像的代码)

<TextView
        android:id="@+id/txtNombrePDV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="La bendición"
        android:textColor="@color/colorPrimaryText"
        android:ellipsize="marquee"
        android:lines="1"
        android:scrollHorizontally="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:textSize="@dimen/list_primary_text" />


    <TextView
        android:id="@+id/txtNombreMunicipio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stack Overflow"
        android:textColor="@color/colorPrimaryText"
        android:ellipsize="marquee"
        android:lines="1"
        android:scrollHorizontally="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:textSize="@dimen/list_secondary_text"
        />

    <TextView
        android:id="@+id/txtDireccion"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit"
        android:textColor="@color/colorSecondaryText"
        android:ellipsize="marquee"
        android:lines="1"
        android:scrollHorizontally="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:textSize="@dimen/list_secondary_text"
        />
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

结合Subheader&amp;的文本。免费文本,使用Spannable String将颜色设置为相应的文本。 Refer this spannable string example以便更好地理解

答案 1 :(得分:0)

你的布局应该是这样的。

<RelativeLayout
        android:padding="8dp"
        android:layout_gravity="center"
        android:gravity="center_vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tvTitle"
            android:layout_weight="1"
            android:textSize="18dp"
            android:textColor="@color/subHead"
            android:layout_marginRight="8dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"/>

        <TextView
            android:layout_below="@+id/tvTitle"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Subhead"
            android:textSize="20sp"
            android:layout_marginTop="8dp"
            android:id="@+id/subHeader"
            android:textColor="@color/colorText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </RelativeLayout>

和java代码应如下所示。

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    int color = ContextCompat.getColor(this,R.color.subHead);
    String title = "Brunch this weekend?";
    String name = "Ali Connors";
    String message = "I will be in weekends so get set ready. Will meet you yesterday";
    String subTitle = name+" - "+message;
    SpannableString spannableString = new SpannableString(subTitle);
    spannableString.setSpan(new ForegroundColorSpan(color),0,name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    TextView subTitleTextView = findViewById(R.id.subHeader);
    TextView titleTextView = findViewById(R.id.tvTitle);
    subTitleTextView.setText(spannableString);
    titleTextView.setText(title);
}

颜色

  <color name="subHead">#252525</color>
    <color name="colorText">#797979</color>