Anvi
Anvi

Reputation: 2741

Android Scrollview expanding and shrinking

How can I add a down arrow like button on below of scroll view so that on pressing it the scroll view gets expanded to a height.on again pressing it it shrinks to its original height.i only want to display a small content in ScrollView,and on pressing the button displays more content.

how can I achieve this? Please help. thanks in advnc

here is my scrollview

        <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_marginBottom="@dimen/_5sdp"
        android:layout_height="@dimen/_120sdp"
        >

        <TableLayout
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/tl"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".customer.database.OrderNew_Activity"
            android:layout_weight="2"
            >



        </TableLayout>

    </ScrollView>

I want to display small portion of tablelayout and display rest on pressing the button

Upvotes: 0

Views: 870

Answers (2)

Arati PAtel
Arati PAtel

Reputation: 42

Here, I tried to solve your problem.

You just need to add the followings to your build.gradle file:

compile 'com.ms-square:expandableTextView:0.1.4'

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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"
    tools:context="com.expandabletextview.MainActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.ms.square.android.expandabletextview.ExpandableTextView
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
            android:id="@+id/expand_text_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            expandableTextView:animDuration="500"
            expandableTextView:maxCollapsedLines="4">

            <TextView
                android:id="@id/expandable_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:textColor="#666666"
                android:textSize="16dp" />

            <ImageButton
                android:id="@id/expand_collapse"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|bottom"
                android:background="@android:color/transparent"
                android:padding="16dp" />
        </com.ms.square.android.expandabletextview.ExpandableTextView>
    </ScrollView>
</RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // sample code snippet to set the text content on the ExpandableTextView
        ExpandableTextView expTv1 = (ExpandableTextView) findViewById(R.id.expand_text_view);

        // IMPORTANT - call setText on the ExpandableTextView to set the text content to display
        expTv1.setText(getString(R.string.dummy_text1));
    }
}

string.xml

<resources>
    <string name="dummy_text1">Hellooooooooooooooo This is dummy text. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</string>
</resources>

Upvotes: 1

WOLF.L
WOLF.L

Reputation: 374

Add a button below your scroll view.

add global boolean variable in your activity to check whether scrollview is expanded or not.

boolean exapanded = false;

In the onclick listener of the button do the following

if(expanded){
scrollView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,100));
expanded = false;
}
else{
scrollView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
expanded = true;
}

Upvotes: 1

Related Questions