我正在使用自定义适配器显示一个ListView。在视图中,我有一个textView和一个按钮在布局中。
预期的操作是,当我点击TextView时,自定义适配器类中的onClick回调将设置button_layout的边距,如下所示。
但是这个问题并没有解决。我能够改变背景颜色,但无法改变底部边距。
应用程序不会崩溃,但也不起作用。如果我在调试器中查看布局的 bottomMargin 值已更改,但在 UI 中未反映出来:( 我在此处放置了一部分代码。假设 onClickListener 已设置。它正在工作,因为我可以在单击 TextView 时更改布局的背景颜色。
预期的操作是,当我点击TextView时,自定义适配器类中的onClick回调将设置button_layout的边距,如下所示。
View button_layout = (((View)(View)v.getParent()).getParent()).findViewById(R.id.button_layout));
MarginLayoutParams margins=(MarginLayoutParams)button_layout.getLayoutParams();
margins.bottomMargin=-100;
但是这个问题并没有解决。我能够改变背景颜色,但无法改变底部边距。
customadapter
是一个我不能透露更多代码的大型代码的一部分。应用程序不会崩溃,但也不起作用。如果我在调试器中查看布局的 bottomMargin 值已更改,但在 UI 中未反映出来:( 我在此处放置了一部分代码。假设 onClickListener 已设置。它正在工作,因为我可以在单击 TextView 时更改布局的背景颜色。
public class MyCustomAdapter extends ArrayAdapter<someClass> implements OnClickListener{
public View getView(int position, View convertView, ViewGroup parent) {
}
public void onClick(View v){
View row_to_hide = (((View ((View)v.getParent()).getParent()).findViewById(R.id.row_to_hide));`
MarginLayoutParams margins=(MarginLayoutParams)row_to_hide.getLayoutParams();`
margins.bottomMargin=-100;`
}
}
我是新手,想知道这种方法的概念上是否存在问题。此外,textView
和按钮分别位于相对布局和线性布局中。
我试图改变包含按钮的线性布局的边距,以便隐藏按钮。