在Java中将height设置为wrap_content会使视图拒绝所有预定义的XML属性?

时间:2017-06-08 18:40:26

标签: java android android-wrap-content

我已经用XML创建了一个TextView,并为它设置了一些规则(例如layout_bellow="something"),并将它的高度设置为0,这样当点击一个按钮时,它就会被&#39 ; s高度将设置为wrap_content。我为负责调整大小的按钮编写了下面的代码,下面是我为TextView编写的XML代码。问题是,当我单击按钮时,高度变为match_parentlayout_bellow属性将被忽略,并从父布局的开头和宽度(设置为{{1 }})变为match_parent。有什么问题?感谢。

按钮:

wrap_content

XML:

    btnExpand.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, height));
        }
    });

EDIT: here's an image to demonstrate the problem

1 个答案:

答案 0 :(得分:0)

基本上问题是您正在创建新的LayoutParams并将其设置为视图。您已获取视图的已设置(xml)LayoutParams并修改您要修改的任何一个并将其设置回View。

LayoutParams layoutParams = textView.getLayoutParams();
//height = LayoutParams.WRAP_CONTENT;or 100 or whatever
layoutParams.height = LayoutParams.WRAP_CONTENT;
textView.setLayoutParams(layoutParams);