【问题标题】:Android textview set max lines based on StirngAndroid textview基于String设置最大行数
【发布时间】:2017-07-11 15:25:28
【问题描述】:

嘿,我有几个相同宽度的 Textview 我将为每个 TextView 设置文本这些文本是基本不同长度的文本。现在我想根据 Textview 的最高长度设置所有 Textview 的最大行数。

我只想找到最大行数并为所有 TextView 设置相同的最大行数。有什么办法可以解决吗?

【问题讨论】:

    标签: android gridview textview


    【解决方案1】:

    你可以使用getLineCount()

    用法

    public int getLine(Textview textview){
        textview.post(new Runnable() {
            @Override
            public void run() {
                return textview.getLineCount();
            }
        });
    }
    

    那么你需要迭代所有的textview

    例子:你有一组Textview数组

    List<TextView> texts = new ArrayList<>();
    texts.add(textview1);
    texts.add(textview2);
    texts.add(textview3);
    

    然后迭代所有这些

    List<int> number = new ArrayList<>();
    for(TextView txt: texts){
        number.add(getLine(txt));
    }
    

    然后比较数字

    int maxNumber = Collections.max(number);
    for(TextView txt: texts){
        txt.setMaxLines(maxNumber);
    }
    



    如果您在 gridview 中使用适配器...试试这个来获取视图

    public TextView GetViewByPosition(int position) {
        int firstPosition = this.getFirstVisiblePosition();
        int lastPosition = this.getLastVisiblePosition();
    
        if ((position < firstPosition) || (position > lastPosition))
            return null;
    
        return (TextView)this.getChildAt(position - firstPosition);
    }
    

    【讨论】:

    • Gridveiew getView方法下有没有可能的实现方式?
    • 怎么做?有什么线索吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 2013-07-30
    • 2023-03-06
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多