Android 自定义文本视图,如Facebook

Android 自定义文本视图,如Facebook,android,Android,我想在安卓系统中定制一个文本视图,它可以处理更多和更少的查看,以及像Facebook一样的标签和可点击链接。 我们非常感谢任何解决方案 下面是如何做的 像这样更改您的xml。请注意,我添加了android:maxLines=5。更改显示更多内容的内容。。你想要的文本 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr

我想在安卓系统中定制一个文本视图,它可以处理更多和更少的查看,以及像Facebook一样的标签和可点击链接。 我们非常感谢任何解决方案

下面是如何做的

像这样更改您的xml。请注意,我添加了android:maxLines=5。更改显示更多内容的内容。。你想要的文本

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/texts"
        android:text="some text"
        android:maxLines="5"
       />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/more_text"
        android:text="Show more..."
        />

</LinearLayout>

这段代码运行得很好,但是,是否有任何需要添加的解决方案…请参阅文本行末尾的更多内容。非常感谢您的友好回答。要做到这一点,您必须使用相对布局。添加查看更多文本。这样,文本将不会在同一行中。我的想法是将文本连接起来,并一起查看更多内容。在这种情况下,您可以尝试使用此库
    import android.os.Bundle;
    import android.view.View;
    import android.view.animation.Animation;
    import android.view.animation.AnimationUtils;
    import android.widget.TextView;

    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;

    public class MainActivity extends AppCompatActivity {

        TextView moreTextview;
        TextView texts;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            moreTextview = findViewById(R.id.more_text);
            texts = findViewById(R.id.texts);


            moreTextview.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (moreTextview.getText().toString().equalsIgnoreCase("Show more...")) {
                        moreTextview.setText("Show less...");

                        texts.setMaxLines(texts.getText().length());
                    } else if (moreTextview.getText().toString().equalsIgnoreCase("Show less...")) {
                        moreTextview.setText("Show more...");
                        texts.setMaxLines(5);
                    }

                }
            });


        }
    }