Textview点击加载全部,再次点击收回


上图是加载全部之前的



这是加载全部的,写的代码都是简单易懂的。


xml中的两个Textview

    <TextView
                        android:id="@+id/tv_shop_storeIntroduce"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_10"
                        android:maxLength="5000"
                        android:singleLine="false"
                        android:lines="3"
                        android:ellipsize="end"
                        android:text="文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍" />
                        android:maxLength="100"
                        android:scrollHorizontally="false"/>




                        <TextView
                            android:layout_gravity="center_horizontal"
                            android:padding="@dimen/dp_10"
                            android:id="@+id/tv_load"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:text="加载更多"
                            android:drawablePadding="@dimen/dp_5"
                            android:drawableRight="@drawable/shop_more_arrow"

                            android:singleLine="true"/>



Java代码:

private boolean mapboolean = true; 


 case R.id.tv_load://点击事件
                if (mapboolean) {
                    //加载全部的状态
                    mapboolean = false;
                    Drawable draw = getResources().getDrawable(R.drawable.shop_more_arrow);
                    mTvload.setCompoundDrawablesRelativeWithIntrinsicBounds(null,null,draw,null);
                    mTvload.setText("收起");
                    mTvshopstoreIntroduce.setEllipsize(null); // 展开
                    mTvshopstoreIntroduce.setSingleLine(mapboolean);
                    mTvshopstoreIntroduce.setEllipsize(TextUtils.TruncateAt.END);//以...的形式显示多余的
                } else {
                    // 收缩后的状态
                    mapboolean = true;
                    Drawable draw = getResources().getDrawable(R.drawable.shop_down_xia);
                    mTvload.setCompoundDrawablesRelativeWithIntrinsicBounds(null,null,draw,null);
                    mTvshopstoreIntroduce.setLines(3);
                    mTvshopstoreIntroduce.setEllipsize(TextUtils.TruncateAt.END);
                    mTvload.setText("加载更多");
                }

                break;


我自己作为记录的内容:优化之后的:

   <TextView
                        android:id="@+id/tv_load"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_gravity="center_horizontal"
                        android:drawablePadding="@dimen/dp_8"
                        android:drawableRight="@drawable/shop_arrow_down"
                        android:padding="@dimen/dp_10"
                        android:text="加载更多"
                        android:visibility="gone" />


 mTvload.setVisibility(mTvshopstoreIntroduce.getText().toString().length() > 63 ? View.VISIBLE : View.GONE);//是否显示加载更多,超过多少文字进行显示按钮。什么都没有就隐藏。mTvshopstoreIntroduce获取接口内容。


case R.id.tv_load:


                if (mapboolean) {
                    //加载全部的状态
                    mapboolean = false;
                    Drawable draw = getResources().getDrawable(R.drawable.shop_arrow_up);
                    mTvload.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, draw, null);
                    mTvload.setText("收起");


                    mTvshopstoreIntroduce.setEllipsize(null); // 展开
                    mTvshopstoreIntroduce.setSingleLine(mapboolean);
                    mTvshopstoreIntroduce.setEllipsize(TextUtils.TruncateAt.END);//以...的形式显示多余的
                } else {
                    // 收缩后的状态
                    mapboolean = true;
                    Drawable draw = getResources().getDrawable(R.drawable.shop_arrow_down);
                    mTvload.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, draw, null);
                    mTvshopstoreIntroduce.setLines(3);
                    mTvshopstoreIntroduce.setEllipsize(TextUtils.TruncateAt.END);
                    mTvload.setText("加载更多");


                }


                break;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@删库跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值