在Android中阅读更多按钮

时间:2016-04-15 04:12:55

标签: android android-animation

我已经看过几个阅读更多按钮问题,但我没有得到一种我看起来更多的解决方案。我想只显示布局的某些部分,并且只有当用户按下“阅读更多”按钮时才会显示布局的其余部分,并显示下拉动画。这种东西: enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

我无法向您提供您想要的确切代码,但我可以通过提供符合您要求的示例代码来帮助您,

这里我只描述按钮功能的工作原理。 首先在您的activity_main.xml文件中粘贴代码。

<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);

   }
  });

 }

}

最后更改了您的string.xml文件 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>

并运行您的项目它将为您提供以下输出。

normal view Expanded view