首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不能在getView()中更改线性布局高度

不能在getView()中更改线性布局高度
EN

Stack Overflow用户
提问于 2018-07-05 02:27:04
回答 3查看 47关注 0票数 0

fragment.xml包含线性布局和RelativeLayout中的一个按钮。我需要在单击按钮时调整线性布局的高度,但它不起作用(什么都没有发生)。但是,设置文本视图的文本是可行的。有什么想法吗?我甚至不确定这是否可能。

getView()函数:

代码语言:javascript
复制
@Override
public View getView(int _position, View _view, ViewGroup _parent) {

View view = _view;

ViewHolder m_viewHolder ;

 if (view == null) {

    LayoutInflater inflater = (LayoutInflater) m_ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

     view = inflater.inflate(R.layout.fragment_user, _parent, false);

     m_viewHolder = new ViewHolder();

     m_viewHolder.btn_test = (ImageButton)view.findViewById(R.id.btn_details);

     m_viewHolder.btn_test.setOnClickListener(changeLLHeight);

     view.setTag(m_viewHolder);

} else {
     m_viewHolder = (ViewHolder) view.getTag();
}

m_viewHolder.btn_test.setTag(_position);


return view;
}

OnClickListener():

代码语言:javascript
复制
private View.OnClickListener changeLLHeight = new View.OnClickListener() {
  @Override
  public void onClick(View v) {

    RelativeLayout rl = (RelativeLayout)v.getParent();

    LinearLayout ll = (LinearLayout)rl.getChildAt(1);

    TextView tv = (TextView)rl.getChildAt(2);

    ll.getLayoutParams().height = 20;
    ll.requestLayout();

    tv.setText("Oi!!");

    Toast.makeText(getContext(), "", Toast.LENGTH_SHORT).show();


  }
};
EN

回答 3

Stack Overflow用户

发布于 2018-07-05 02:31:27

你可以使用

代码语言:javascript
复制
LinearLayout ll = (LinearLayout)rl.getChildAt(1);
LayoutParams params = ll.getLayoutParams();

// Changes the height and width to the specified *pixels*
params.height = 100;
params.width = 100;
ll.setLayoutParams(params);
票数 1
EN

Stack Overflow用户

发布于 2018-07-05 02:33:13

这是你需要的:

代码语言:javascript
复制
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)
                            ll.getLayoutParams();
params.height = 20;
ll.setLayoutParams(params);
票数 0
EN

Stack Overflow用户

发布于 2018-07-05 02:38:12

您需要将参数与setLayoutParams一起应用

Android: How to Programmatically set the size of a Layout

代码语言:javascript
复制
LayoutParams params = ll.getLayoutParams();
params.height = 20;
ll.setLayoutParams(params);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51179268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档