android 简单的两步实现Play上的文本伸缩功能

本文详细介绍了如何在Google Play应用中实现伸缩式应用详情展示功能,通过简单的代码示例和布局设计,使得应用详情在用户点击时展开或折叠,节省屏幕空间,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常上google play下载软件,看到它的伸缩式的软件介绍很感兴趣。功能截图如下:

点击文本会下拉更多详细介绍,实现这一功能很简单,废话不多说,直接上代码

 

 private boolean isExpanded = false;
    private int lastHeight = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_expand_in_context);

        final ViewGroup expandableContainer = (ViewGroup) findViewById(R.id.expandable_container);

        findViewById(R.id.expandable_text).setOnClickListener(
                new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        if (isExpanded) {
                            ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) expandableContainer
                                    .getLayoutParams();

                            params.height = lastHeight;

                            expandableContainer.setLayoutParams(params);
                            expandableContainer.invalidate();
                        } else {
                            lastHeight = expandableContainer.getHeight();

                            ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) expandableContainer
                                    .getLayoutParams();

                            params.height = ViewGroup.LayoutParams.WRAP_CONTENT;

                            expandableContainer.setLayoutParams(params);
                            expandableContainer.invalidate();
                        }

                        isExpanded = !isExpanded;

                    }
                });

    }

布局只需要这样:

 <FrameLayout
            android:id="@+id/expandable_container"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_below="@+id/above"
            android:layout_margin="15dp"
             >

            <TextView
                android:id="@+id/expandable_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:ellipsize="end"
                android:text="@string/loremipsum" 
                android:clickable="true"/>
        </FrameLayout>

父布局限定了可限示的高度,可以使文本不用一次性全部显示,为屏幕节省空间。等用户点击查时才一次性显示全部给用户,再一次点击则隐藏掉。。原理很简单。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值