ExpandableTextView—可以伸缩的文本

介绍

ExpandableTextView 是一个Android库,使开发人员能够轻松地创建一个TextView可以展开/折叠就像谷歌Play的应用说明。随意使用它所有你想在你的Android应用程序,只要你引用这个项目。控件一般用在应用详情页面的简介中,可伸缩扩展的。
展示图

这里写图片描述

依赖

GitHub源码 点击查看

dependencies {
    compile 'com.ms-square:expandableTextView:0.1.4'
}

)
使用这种库其实是很简单的,只要看看提供的源代码示例。(看在一个ListView的使用sampletextlistadapter.java)

注意:查看id TextView和ImageButton必须设置为“@ id / expandable_text”和“@ id / expand_collapse”提供给这个库使用,固定的。

另外,你可以设置你的XML布局文件中的下列属性来定制的expandabletextview行为。
1、maxcollapsedlines(默认为8)文本行可以显示当TextView行数最大数量
2、animduration(默认为300ms)为展开/折叠的动画时间
3、animalphastart(默认为0.7f)透明度值的TextView当动画开始(注)如果您想禁用α动画设置这个值为1
4、expanddrawable自定义图像设置为ImageButton展开方法
5、collapsedrawable自定义图像设置为ImageButton关闭的方法
栗子1:

 <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:maxCollapsedLines="4"
      expandableTextView:animDuration="200">
      <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:textSize="16sp"
          android:textColor="#666666" />
      <ImageButton
          android:id="@id/expand_collapse"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="16dp"
          android:layout_gravity="right|bottom"
          android:background="@android:color/transparent"/>
  </com.ms.square.android.expandabletextview.ExpandableTextView>

栗子二:

// 示例代码来设置文本内容的expandabletextview
ExpandableTextView expTv1 = (ExpandableTextView) rootView.findViewById(R.id.sample1)
                    .findViewById(R.id.expand_text_view);

// 重要的调用setText的expandabletextview设置文字显示的内容
expTv1.setText(getString(R.string.dummy_text1));

案例代码:

这里写图片描述

<LinearLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    android:background="#FFFFFF"
    android:orientation="vertical"
    android:padding="6dp" >

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

        expandableTextView:maxCollapsedLines="3"//折叠状态下显示最大行数
        expandableTextView:animDuration="500"//开启关闭动画执行时间

        expandableTextView:expandDrawable="@drawable/arrow_down"//图标箭头
        expandableTextView:collapseDrawable="@drawable/arrow_up"


        <LinearLayout
            android:id="@+id/part4_ll"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
            <TextView
                style="@style/Text_Detail"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:text="简介" />
            <ImageButton
                android:id="@id/expand_collapse"//固定的id名称才能匹配上这个库
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:src="@drawable/arrow_down" />
        </LinearLayout>
        <TextView 
            style="@style/Text_Detail"//固定的id名称才能匹配上这个库
            android:id="@id/expandable_text"
            android:text="我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介我是简介"/>
    </com.ms.square.android.expandabletextview.ExpandableTextView>
</LinearLayout>
public class MainActivity extends AppCompatActivity {

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

       // 经过配置之后必须调用代码设置内容才会显示
        ExpandableTextView expand_layout= (ExpandableTextView) findViewById(R.id.expand_layout);
        //setText();传入你需要展示内容的参数
        expand_layout.setText(getString(R.string.desc));
    }
}

版权声明:本文为qq_37293612原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。