Reputation:
I have this layout file for a fragment that is not displaying the last textview element, tv_notice_date, anytime the content exceeds the screen height. I added a scrollbar to the cardview, but the scrollbar is not displaying.
fragment_notice.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:layout_margin="4dp"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--Title of notice-->
<TextView
android:id="@+id/tv_notice_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Title of Notice"
android:layout_gravity="center"
android:textAppearance="?android:textAppearanceLarge"
android:textSize="20sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/tv_notice_summary"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:text="@string/notice_body"
android:textAppearance="?android:textAppearanceMedium"
android:textSize="15sp"/>
<!--Date of Notice-->
<TextView
android:id="@+id/tv_notice_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Mon, Nov 28, 2016. 8:56 AM"
android:textColor="#0D47A1"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
strings.xml
<string name="notice_body">
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
Summary of the very first post...Summary of the very first post...Summary of the very first post...
</string>
I want to display a scrollbar anytime the content is more so that the date textview can be displayed.
Upvotes: 0
Views: 382
Reputation: 1570
To have a scroll outside of a card you can use the following structure:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- your content here -->
</LinearLayout>
</android.support.v7.widget.CardView>
</ScrollView>
You can have a scroll inside a card, but in that case a card will always occupy the full screen height even if there is not much content:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- your content here -->
</LinearLayout>
</ScrollView>
</android.support.v7.widget.CardView>
Upvotes: 1
Reputation: 183
I am not sure but if that's not working then you can try like
LinearLayout
....
...>
<ScrollView
.....
...>
<CardView
....
....>
....
other views and Viewgroups
....
</CardView
</ScrollView>
</LinearLayout>
Post back what you get!! Let us know
Upvotes: 0