首页 > 代码库 > 可收缩的TextView
可收缩的TextView
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > <!-- android 简单的两步实现Play上的文本伸缩功能 --> <!-- http://www.cnblogs.com/TerryBlog/archive/2013/03/12/2956165.html --> <FrameLayout android:id="@+id/expandable_container" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_marginBottom="@dimen/linear_margin_bigger" > <TextView android:id="@+id/expandable_text" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:ellipsize="end" android:text="@string/loremipsum" /> </FrameLayout> <!-- my method --> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/myexpandable_text" android:layout_width="match_parent" android:layout_height="match_parent" android:maxLines="3" android:clickable="true" android:ellipsize="end" android:text="@string/loremipsum" /> </FrameLayout></LinearLayout>
package com.lxh.textview;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.TextView;import com.example.com.lxh.pro1.R;/** * android 简单的两步实现Play上的文本伸缩功能 * http://www.cnblogs.com/TerryBlog/archive/2013/03/12/2956165.html * @author lxh */public class ExpandableTV extends Activity { // -------------------------- Terry‘s method -------------------------- private boolean isExpanded = false, myIsExpanded = false; private int lastHeight = 0; private ViewGroup expandableContainer; private TextView textView, myTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_expandable_tv); expandableContainer = (ViewGroup) findViewById(R.id.expandable_container); textView = (TextView) findViewById(R.id.expandable_text); textView.setOnClickListener(terryClickListener); myTextView = (TextView) findViewById(R.id.myexpandable_text); myTextView.setOnClickListener(myClickListener); } private OnClickListener terryClickListener = new OnClickListener() { @Override public void onClick(View v) { if (isExpanded) { LayoutParams params = (LayoutParams) expandableContainer.getLayoutParams(); params.height = lastHeight; expandableContainer.setLayoutParams(params); expandableContainer.invalidate(); //调用OnDraw方法 } else { lastHeight = expandableContainer.getHeight(); LayoutParams params = (LayoutParams) expandableContainer.getLayoutParams(); params.height = ViewGroup.LayoutParams.WRAP_CONTENT; expandableContainer.setLayoutParams(params); expandableContainer.invalidate(); //调用OnDraw方法 } isExpanded = !isExpanded; } }; //Terry总结:此方法缺陷,当给出最大高度不合适时,字会显示一半高度 // -------------------------- my method -------------------------- private OnClickListener myClickListener = new OnClickListener() { @Override public void onClick(View v) { if (myIsExpanded) { myTextView.setMaxLines(3); expandableContainer.invalidate(); //调用OnDraw方法 } else { myTextView.setMaxLines(Integer.MAX_VALUE); expandableContainer.invalidate(); //调用OnDraw方法 } myIsExpanded = !myIsExpanded; } }; //Me总结:此方法不存在Terry的问题}
可收缩的TextView
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。