我遇到了一个奇怪的问题: 我有一个从 RelativeLayout 扩展的类。
然后我想像这样添加两个 View :
mButtonTip = new ButtonTip(context, attrs);
mToolTip = new ToolTip(context, attrs);
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params2.addRule(RelativeLayout.ALIGN_BOTTOM, mToolTip.getId());
addView(mToolTip, params1);
addView(mButtonTip, params2);
不幸的是,mToolTip View 已正确放置,但 mButtonTip 不会从布局的左下角移动。
您知道为什么 mButtonTip View 会忽略我刚刚设置的布局参数吗?
最佳答案
好吧,对于那些可能遇到同样问题的人,我找到了解决方案:
我需要像那样显式设置不同 View 的 id :
mButtonTip = new ButtonTip(context, attrs);
mButtonTip.setId(1);
mToolTip = new ToolTip(context, attrs);
mToolTip.setId(2);
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params2.addRule(RelativeLayout.ALIGN_BOTTOM, mToolTip.getId());
addView(mToolTip, params1);
addView(mButtonTip, params2);
关于Android RelativeLayout 参数被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760649/