ListView
カスタムアダプターを使用して表示しています。ビューtextView
には、レイアウトにボタンがあります。
何が起こるか->テキストビューをクリックするとすぐonClick
に、カスタムアダプタークラスのコールバックがTextView
設定され、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が設定されていると仮定します。テキスト ビューをクリックすると、レイアウトの背景色を変更できます。
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
ボタンはそれぞれ Relative レイアウトと Linear レイアウトにあります。
ボタンを非表示にできるように、ボタンが配置されている線形レイアウトの余白を変更しようとしています。