Android RelativeLayoutコードで相対レイアウトのコントロールの位置を動的に設定

1110 ワード

RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)imageButtonCursor.getLayoutParams();
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, R.id.imageButtonCursor);

imageButtonCursorを下部に設定します(これまでこのコントロールはAコントロールに依存して位置を設定していたので、必要に応じてAコントロールを非表示にし、Aコントロールを非表示にするとimageButtonCursorが位置を外すので、このように動的に設定します)
名前はimageButtonCursorの親レイアウトがRelativeLayoutでなければgetLayoutParamsの強移籍が間違っています
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageButtonCursor.getLayoutParams();
//   SDK  17          
//layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);     //                    
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
layoutParams.addRule(RelativeLayout.ABOVE, R.id.horizontalScrollView1);

R.id.horizontalScrollView 1がAコントロール(必要に応じてAコントロールが表示される)に表示された後、imageButtonCursorはAコントロールに従って位置を探す必要があります.前にimageButtonCursorを設定して下に表示します.この位置をクリアしないと設定された相対位置は無効です.17以上はremoveRuleの方法で互換性のために使用できます.
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);