首先,
App.getInstance().getWidth(
)给了我屏幕宽度。
我正在创建这个 LinearLayout:
mainContainer = new LinearLayout(context);
mainContainer.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
它是水平的,它有两个项目,这个:
adContainer = new RelativeLayout(context);
adContainer.setBackgroundColor(Color.BLACK);
adContainer.setLayoutParams(new LayoutParams(App.getInstance().getWidth(), App.getInstance().getHeight()));
adContainer.setGravity(Gravity.CENTER);
mainContainer.addView(adContainer);
还有这个:
tabView = new ImageView(context);
tabView.setLayoutParams(new LayoutParams(100,140));
tabView.setImageResource(R.drawable.tab);
mainContainer.addView(tabView);
我尝试使用 TranslateAnimation 移动布局,但我发现它没有显示 adContainer 右侧的视图
tabView
,因此我测试了将 mainContainer
的 startX 位置设置为 -App.getInstance().getWidth()/2
,我可以看到一半的 adContainer
但我还是看不到tabView
:
查看 tabView 的唯一方法是将 adContainer 宽度设置为小于
App.getInstance().getWidth()
。很奇怪。
为什么我看不到添加到布局中的任何项目,但 x 位置大于屏幕宽度?
您在线性布局的布局参数中给出了包裹内容,因此线性布局包裹在相对布局和图像视图周围。尝试使用 MatchParent。
mainContainer = new LinearLayout(context);
mainContainer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));