Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Aligning multiple TextView within new CardView

I'm trying to create a CardView that will display a quote by an author, including the author name, the quote, and then the reference below it. I think I've got most of it, but it seems that the general rules for aligning TextViews don't seem to apply to CardView. I've researched here and found that you should add android:layout="vertical" to LinearLayout (or RelativeLayout) but that doesn't seem to change things for me. I've also tried adding it to the CardView itself, thinking that it inherits the orientation from the immediate parent, but also no luck. I still get the TextViews overlapping each other, rather than one after the other.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_height="match_parent"
    android:layout_width="match_parent">
    ... >

<!-- A CardView that contains a TextView -->
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_gravity="top"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:longClickable="true"
    android:orientation="vertical"
    card_view:cardUseCompatPadding="true"
    card_view:cardCornerRadius="4dp"
    card_view:cardElevation="4dp"
    card_view:contentPadding="10dp"
    >
    <TextView
        android:id="@+id/info_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#FF4444"
        android:textSize="24sp"
        android:text="Gordon B. Hinckley"
        />
    <TextView
        android:id="@+id/info_text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/info_text"
        android:text="Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text. Test text."
        />
    <TextView
        android:id="@+id/info_text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/info_text2"
        android:textColor="#33B5E5"
        android:gravity="end"
        android:text="and I'm the reference."
        />

</android.support.v7.widget.CardView>

Any thoughts?

like image 310
Jacob Avatar asked Oct 22 '14 22:10

Jacob


1 Answers

Solved it. Just needed to wrap the <TextView>s in a <LinearLayout> (or whatever other layout) but all still within <android.support.v7.widget.CardView>.

like image 87
Jacob Avatar answered Nov 13 '22 07:11

Jacob