zoukankan      html  css  js  c++  java
  • 超简单--仿微信朋友圈展开显示更多文字功能

    (这篇里的还是太简陋,基本不可直接用于项目。已经写好一个单独封装的,可以适应多种环境的控件,个人感觉十分简单好用,敬请期待)

    在做的项目需要这个功能。而且是挺常用的一个功能。

    需求是有一个评论列表,太多时要隐藏,然后点击展开更多按钮就可以显示全文。

    思路就是可以弄俩TextView,一个MaxLine为n,一个不限制,然后再弄个按钮控制两个TextView交替显示。

    有了思路马上动手,然后发现这个效果真是很简单就实现了。。效果图

    好了,废话不多说,上代码。讲解不会很多,因为实在太简单了。。。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="2" />
    
        <Button
            android:id="@+id/btn_showmore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/text1"
            android:text="show more" />
    
        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone" />
    
        <Button
            android:id="@+id/btn_hidden"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/text2"
            android:text="hidden"
            android:visibility="gone" />
    </RelativeLayout>
    package com.example.csonezp.showmoredemo;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import butterknife.Bind;
    import butterknife.ButterKnife;
    import butterknife.OnClick;
    
    public class MainActivity extends AppCompatActivity {
        String text = "据报道,男子沃纳事发时与兄长在巴塔克兰剧院内欣赏演唱会,枪手突然闯入乱枪扫射,当时枪手站在沃纳的兄长身后,并命令沃纳把会场其中一扇门关上。沃纳忆述当时自己双手合十,直视枪手双眼说:“不,因为我兄弟还在里面。”枪手让沃纳的兄长和他离开,随即便把门关上,兄弟二人和其余50名观众通过会场的通风区域逃走。";
    
        @Bind(R.id.text1)
        TextView textView1;
        @Bind(R.id.text2)
        TextView textView2;
        @Bind(R.id.btn_showmore)
        Button btn_showmore;
        @Bind(R.id.btn_hidden)
        Button btn_hidden;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
            textView1.setText(text);
            textView2.setText(text);
        }
    
        @OnClick(R.id.btn_showmore)
        public void showMore() {
            textView1.setVisibility(View.GONE);
            btn_showmore.setVisibility(View.GONE);
            textView2.setVisibility(View.VISIBLE);
            btn_hidden.setVisibility(View.VISIBLE);
        }
    
        @OnClick(R.id.btn_hidden)
        public void hidden() {
            textView1.setVisibility(View.VISIBLE);
            btn_showmore.setVisibility(View.VISIBLE);
            textView2.setVisibility(View.GONE);
            btn_hidden.setVisibility(View.GONE);
        }
    
    
    }

    代码中用到了butterknife这个注入工具,个人感觉蛮好用的,能节省不少开发时间。

    希望能帮到大家。

  • 相关阅读:
    xmselect动态渲染(单选和多选)
    Python数据挖掘学习进度11(pandas高级处理)
    Mysql:DML-增删改表中数据
    Mysql:DDL-操作数据库、表
    mybatis实现增删改查操作
    mybatis的入门(环境的部署)
    Redis
    web综合案例:登录界面,注册界面,忘记密码等功能实现
    git常用命令实践
    在IntelliJ IDEA中使用git
  • 原文地址:https://www.cnblogs.com/csonezp/p/4970796.html
Copyright © 2011-2022 走看看