CollapsedTextView可折叠的textview,几行代码就能搞定,非常方便使用

CollapsedTextView

可折叠的textview,支持重新设置text内容之后还能折叠

更改text内容之后依旧可以折叠展开

使用方法

添加依赖,或者eclipse中依赖此library,或者直接下载CollapsedTextView.java文件放在自己的项目中即可
jcenter地址:

compile 'com.z:CollapsedTextView:1.0.0'

布局中,其中maxLines就是最大行数,超过这个行数就会折叠起来,

 <z.collapsedtextviewlibrary.CollapsedTextView
        android:id="@+id/tv"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:maxLines="6"
        android:text="!Hello World!Hello World!Herld!" />

主要方法:

1.public boolean isNeedCollapse()是否需要折叠,如果文本实际行数小于你设置的要折叠的阈值,那么就返回false,即不需要折叠,否则返回true

2.public void collapse()折叠方法,textview折叠时,调用此方法展开,展开时调用此方法折叠

3.public boolean isCollapsed成员变量,是否已折叠,随时可以调用,获取折叠状态

在activity使用示例

public class MainActivity extends AppCompatActivity {

    private Button mBtButton;
    private CollapsedTextView mTvCollapsedTextView;
    private Button mBt1Button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBtButton = (Button) findViewById(R.id.bt);
        mBt1Button = (Button) findViewById(R.id.bt1);
        mTvCollapsedTextView = (CollapsedTextView) findViewById(R.id.tv);
        mBt1Button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mTvCollapsedTextView.setText("123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789");
                if (!mTvCollapsedTextView.isNeedCollapse()) { //如果不需要折叠,button就隐藏
                    mBtButton.setVisibility(View.VISIBLE);
                    mBtButton.setText("展开");
                }
            }
        });
        if (!mTvCollapsedTextView.isNeedCollapse()) //如果不需要折叠,button就隐藏
            mBtButton.setVisibility(View.GONE);
        mBtButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean collapsed = mTvCollapsedTextView.isCollapsed;
                if (collapsed) {//如果折叠了,就展开
                    mTvCollapsedTextView.collapse();
                    mBtButton.setText("折叠");
                } else {//如果没折叠,就折叠
                    mTvCollapsedTextView.collapse();
                    mBtButton.setText("展开");
                }
            }
        });

    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现按钮控制布局的折叠,可以使用 Android 中的 `ConstraintLayout` 和 `ConstraintSet`。 首先,在 XML 布局文件中,将需要折叠的布局放在一个 `ConstraintLayout` 中,并添加一个按钮,用于控制折叠。例如: ```xml <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/collapsedLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/someView"> <!-- 折叠的布局 --> <TextView android:id="@+id/collapsedTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorAccent" android:text="Collapsed Text" android:textColor="@android:color/white" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> <!-- 控制折叠的按钮 --> <Button android:id="@+id/expandButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Expand" app:layout_constraintTop_toBottomOf="@id/collapsedTextView" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout> ``` 接下来,在 Java/Kotlin 代码中,将需要折叠的布局和按钮分别用 `findViewById` 获取,并创建一个 `ConstraintSet` 对象,用于设置折叠和展开后的布局约束。例如: ```kotlin val collapsedLayout = findViewById<ConstraintLayout>(R.id.collapsedLayout) val collapsedTextView = findViewById<TextView>(R.id.collapsedTextView) val expandButton = findViewById<Button>(R.id.expandButton) // 创建 ConstraintSet 对象 val constraintSet = ConstraintSet() // 设置折叠后的布局约束 constraintSet.clone(collapsedLayout) constraintSet.constrainHeight(R.id.collapsedTextView, 0) // 设置展开后的布局约束 val expandedHeight = resources.getDimensionPixelSize(R.dimen.expanded_height) constraintSet.constrainHeight(R.id.collapsedTextView, expandedHeight) // 点击按钮控制折叠和展开 expandButton.setOnClickListener { if (collapsedTextView.height == 0) { // 折叠状态,展开 constraintSet.applyTo(collapsedLayout) expandButton.text = "Collapse" } else { // 展开状态,折叠 constraintSet.applyTo(collapsedLayout) expandButton.text = "Expand" } } ``` 这样,点击按钮时即可控制布局的折叠和展开。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值