java - 无法更改 getView() 中的线性布局高度

标签 java android mobile

fragment.xml包含线性布局和RelativeLayout内的按钮。我需要在单击按钮时调整线性布局的高度,但它不起作用(什么也没有发生)。但是,设置 TextView 的文本是有效的。有任何想法吗?我不确定这是否可能。

getView() 函数:

@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():

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();


  }
};

最佳答案

你可以使用

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);

关于java - 无法更改 getView() 中的线性布局高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179268/

相关文章:

javascript - 当我改变我的移动 View 时我的图像的位置

android - 在 AsyncTask 中同时使用 POST 和 GET http 请求

java - 如何使用MediaPlayer将MediaController添加到音乐列表?

java - 横向视频 View

java - 球线碰撞

android - 在 Android 中支持不同分辨率时对位图缩放感到困惑

html - href 链接中的填充在 firefox 移动版(应用程序)中不可点击?漏洞?

java - 如何将多个图像输入流传递给 im4java?

java - 在不同位置复制和重命名文件

Java ADT调用变量