mynamecsl
mynamecsl
2018-05-29 03:17
采纳率: 58%
浏览 1.4k

Textview设置高度无作用

默认显示三行,点击查看全部,再点击恢复显示三行。
查看全部设置textview高度没起作用,有什么问题。
就是如何把setLines(3)变成WRAP_CONTENT
textFlag = true

 description_tv = (TextView) findViewById(R.id.description);
        description_tv.setText(Description);
        description_more_tv =(TextView) findViewById(R.id.description_more);
        description_tv.setEllipsize(TextUtils.TruncateAt.END);
        description_tv.setLines(3);
        description_more_tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (textFlag) {
                    textFlag = false;
                    description_tv.setEllipsize(null);
                    ViewGroup.LayoutParams layoutParams = description_tv.getLayoutParams();
                    layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;

                } else {
                    textFlag = true;
                    description_tv.setEllipsize(TextUtils.TruncateAt.END);
                    description_tv.setLines(3);
                }
            }
        });
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • u010563952
    跟上节奏 2018-05-30 01:13
    已采纳

    在if 处加 description_tv.setSingleLine(false); 使 description_tv.setLines(3); 失效

    点赞 评论
  • siutony
    码农翻身记~ 2018-05-29 03:38

    问题出在点击查看全部的时候行数还是3行,要在if条件里加一句description_tv.setLines(0);

    点赞 评论
  • qq_33333570
    忒不靠谱儿 2018-05-29 04:48

    你没修改TextView所占的高度

    点赞 评论
  • qq_31511773
    LHHbszzrt 2018-05-29 06:12

    description_tv.getLayoutParams().height = 100;

    点赞 评论
  • a1onexiang2
    郑凯特 2018-05-29 07:18
    1. 在 xml 中把 TextView 的高度设置为 WRAPCONTENT,需要改高度就改父容器的;
    2. 设置行数的时候调用 setMaxLines(int number),防止 TextView 内容不够但是强行占三行;
    点赞 评论
  • m0_37050608
    程_gang 2018-05-29 07:25

    description_tv.setLayoutParams(layoutParams)

    点赞 评论
  • javaboy2001
    人工智能上手记 2018-05-29 12:30

    在第一个if处保存之前的textview高度,在else中设置回来

    点赞 评论
  • fruit_fruit
    空享 2018-05-30 02:27

    请问你设置高度无作用,是没有显示全部对吗?我试了下,在设置显示全部的判断里加入textView.setSingleLine(flag);这是取消lines属性,之后就会显示全部,并且是自适应的。另外,我在显示全部和显示3行时分别赋值自适应高度,但获取的值显示全部的小于显示3行是什么原因

    点赞 评论
  • maogedadada
    maogedadada 2018-05-30 03:18

    if (textFlag) {
    textFlag = false;
    ViewGroup.LayoutParams layoutParams = description_tv.getLayoutParams();
    layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
    description_tv.setLines(Integer.MAX_VALUE);
    } else {
    textFlag = true;
    description_tv.setEllipsize(TextUtils.TruncateAt.END);
    description_tv.setLines(3);
    }

    点赞 评论
  • mashaohau
    mashaohau 2018-05-30 09:43

    if (textFlag) {
    textFlag = false;
    ViewGroup.LayoutParams layoutParams = description_tv.getLayoutParams();
    layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
    description_tv.setLines(Integer.MAX_VALUE);
    } else {
    textFlag = true;
    description_tv.setEllipsize(TextUtils.TruncateAt.END);
    description_tv.setLines(3);
    }

    点赞 评论

相关推荐