91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TextView文本截斷后顯示更多按鈕

發布時間:2024-08-21 11:09:23 來源:億速云 閱讀:84 作者:小樊 欄目:移動開發

如果想要在TextView文本截斷后顯示更多按鈕,可以通過以下方式實現:

  1. 創建一個自定義的TextView子類,例如ExpandableTextView。
  2. 在ExpandableTextView中添加一個按鈕(如“更多”按鈕)。
  3. 在ExpandableTextView中重寫setText方法,判斷文本內容是否超過一定長度,如果超過則截斷文本,并在末尾添加“…更多”提示。
  4. 當點擊“更多”按鈕時,展開文本內容,顯示完整文本內容。

以下是一個簡單的示例代碼:

public class ExpandableTextView extends TextView {

    private boolean isExpanded = false;
    private String originalText;
    private int maxLines = 2;

    public ExpandableTextView(Context context) {
        super(context);
        init();
    }

    public ExpandableTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public ExpandableTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                isExpanded = !isExpanded;
                setText(isExpanded ? originalText : getTrimmedText());
            }
        });
    }

    public void setMaxLines(int maxLines) {
        this.maxLines = maxLines;
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        originalText = text.toString();
        super.setText(isExpanded ? text : getTrimmedText(), type);
    }

    private CharSequence getTrimmedText() {
        Layout layout = getLayout();
        if (layout != null && layout.getLineCount() > maxLines) {
            int ellipsisCount = layout.getEllipsisCount(maxLines - 1);
            int start = layout.getLineStart(0);
            int end = layout.getLineEnd(maxLines - 1) - ellipsisCount;
            return originalText.substring(start, end) + " ...更多";
        }
        return originalText;
    }
}

使用該ExpandableTextView的示例代碼:

ExpandableTextView expandableTextView = findViewById(R.id.expandableTextView);
expandableTextView.setText("這是一段很長的文本內容,當超過指定行數時會被截斷,點擊更多按鈕可以展開完整內容。");

通過以上方法,可以實現在TextView文本截斷后顯示更多按鈕的效果。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南溪县| 天峨县| 新民市| 博湖县| 甘孜| 济南市| 新干县| 珲春市| 通化市| 德钦县| 西城区| 招远市| 通道| 曲沃县| 东明县| 长垣县| 泰宁县| 纳雍县| 会同县| 巫溪县| 庆阳市| 台东市| 乌海市| 卓资县| 甘孜| 万山特区| 东安县| 正镶白旗| 通州区| 马尔康县| 大埔县| 方山县| 申扎县| 江阴市| 凤凰县| 三门县| 金秀| 桦川县| 喜德县| 祥云县| 奈曼旗|