fragment.xml包含线性布局和RelativeLayout中的一个按钮。我需要在单击按钮时调整线性布局的高度,但它不起作用(什么都没有发生)。但是,设置文本视图的文本是可行的。有什么想法吗?我甚至不确定这是否可能。
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();
}
};
发布于 2018-07-05 02:31:27
你可以使用
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);
发布于 2018-07-05 02:33:13
这是你需要的:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)
ll.getLayoutParams();
params.height = 20;
ll.setLayoutParams(params);
发布于 2018-07-05 02:38:12
您需要将参数与setLayoutParams一起应用
Android: How to Programmatically set the size of a Layout
LayoutParams params = ll.getLayoutParams();
params.height = 20;
ll.setLayoutParams(params);
https://stackoverflow.com/questions/51179268
复制相似问题