Reputation: 2741
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
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
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