Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Read More button in android

I have looked through few read more button questions but I didnot get a kind of solution that I was looking more. I want to display only certain part of layout and only when user presses the Read more button would display the rest of the layout with drop down animation. Something of this sort: enter image description here

enter image description here

like image 520
mrnobody Avatar asked Apr 15 '16 04:04

mrnobody


1 Answers

I cant give you the exact code u desires, but i can help u by giving a sample code that meets your requirement,

Here I am only describe that how more/less button functionality are work. first of all in your activity_main.xml file paste below code.

<ScrollView 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" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/description_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLines="5"
            android:text="@string/desc_content" />

        <ImageButton
            android:id="@+id/show"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/description_text"
            android:background="@drawable/arrow_down"
            android:clickable="true" />

        <View
            android:id="@+id/view1"
            android:layout_width="wrap_content"
            android:layout_height="2dp"
            android:layout_below="@+id/description_text"
            android:layout_marginTop="5dp"
            android:layout_toLeftOf="@+id/show"
            android:background="#000" />

        <ImageButton
            android:id="@+id/hide"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/description_text"
            android:background="@drawable/arrow_up"
            android:clickable="true"
            android:visibility="invisible" />
    </RelativeLayout>

</ScrollView>

MainActivity.java

package com.example.expand.textview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;

public class MainActivity extends Activity {
 TextView descText;
 ImageButton show, hide;

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

  descText = (TextView) findViewById(R.id.description_text);
  show = (ImageButton) findViewById(R.id.show);
  show.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    System.out.println("Show button");
    show.setVisibility(View.INVISIBLE);
    hide.setVisibility(View.VISIBLE);
    descText.setMaxLines(Integer.MAX_VALUE);

   }
  });
  hide = (ImageButton) findViewById(R.id.hide);
  hide.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    System.out.println("Hide button");
    hide.setVisibility(View.INVISIBLE);
    show.setVisibility(View.VISIBLE);
    descText.setMaxLines(5);

   }
  });

 }

}

and finally change your string.xml file string.xml

<resources>

    <string name="app_name">Expand TextView</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="desc_content">     Android powers hundreds of millions of mobile devices in more than 190 countries around the world. It\'s the largest installed base of any mobile platform and growing fast—every day another million users power up their Android devices for the first time and start looking for apps, games, and other digital content.

Android gives you a world-class platform for creating apps and games for Android users everywhere, as well as an open marketplace for distributing to them instantly.
</string>

</resources>

and run your Project It will give you below output.

normal view Expanded view

like image 102
Mr Robot Avatar answered Oct 23 '22 03:10

Mr Robot