大于屏幕宽度的LinearLayout不添加项目

问题描述 投票:0回答:1

首先,

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 位置大于屏幕宽度?

android android-layout layout android-linearlayout android-screen
1个回答
0
投票

您在线性布局的布局参数中给出了包裹内容,因此线性布局包裹在相对布局和图像视图周围。尝试使用 MatchParent。

mainContainer = new LinearLayout(context);  
    mainContainer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
© www.soinside.com 2019 - 2024. All rights reserved.