【问题标题】:Android - change layout children in onMeasureAndroid - 在 onMeasure 中更改布局子项
【发布时间】:2013-08-21 22:09:35
【问题描述】:

有没有办法在它的 onmeasure 中更改我的自定义视图的子项(或 onlayout、ondraw,我实际上不知道该放在哪里:)

我有这段代码,它应该缩小我从 LinearLayout 继承的自定义布局中包含的 textview 并向其中添加一个 onclicklistener ..问题是,这根本不起作用..代码执行,但没有明显的效果。我还尝试在树中的所有视图上调用 invalidate :)

cardContent 是附加到覆盖的 LinearLayout 的 TextView.. 我不知何故觉得这一直是错误的,所以请帮助我。我不太了解在 Android 上编写自定义布局。谢谢!

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    if(cardContent.getLineCount() > 10){
        this.setOnClickListener(this);
        expandIcon.setVisibility(VISIBLE);
        cardContent.setMaxLines(6);

        expanded = false;
    }
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);


}

【问题讨论】:

  • 哪一部分不起作用?this.setOnClickListener(this)你不能在自定义类的构造函数中设置监听器吗?
  • 不... setMaxLines 没有被调用.. 那是我的主要问题..

标签: android android-layout textview android-custom-view


【解决方案1】:

您需要在致电之前致电super.onMeasure(widthMeasureSpec, heightMeasureSpec) TextView.getLineCount()。否则它总是返回 0。

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2012-11-25
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多