我有一个LinearLayout
(让我们称之为 A ),它的宽度设置为fill_parent
,此布局包含一堆另一个LinearLayouts
(让我们称之为 B ),我希望屏幕只显示四 B ' s所以我将{{1>}的 A 分配为weight_sum
,并将 B 的每一个分配为4
,现在我想添加一个1
,这样如果我有6个 B 布局,则只显示4个,其他两个将滚动。我构建此HorizontalScrollView
以包含 A 布局(因为HorizontalScrollView
应该只有一个直接子项),现在我添加到布局 A <的fill_parent宽度/ strong>被破坏,因为它现在服从HorizontalScrollView
所以 B 布局宽度也被破坏了,看看下面的数字:
- 黄色:整个屏幕。
- 绿色: A 布局。
- 红色: B 布局。
我得到的结果:
我想得到的结果是:
我尝试将HorizontalScrollView
和布局 A 的宽度设置为HorizontalScrollView
和/或fill_parent
,但对我没有任何作用
我的 XML 代码:
wrap_content
答案 0 :(得分:3)
您无法仅从xml完成此操作,您需要一些动态代码来测量屏幕宽度,然后以编程方式将每个linearlayout(icon1,icon2等)的宽度设置为1 / 4这个宽度。
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(metrics.widthPixels/4, LayoutParams.MATCH_PARENT);
LinearLayout icon1 = (LinearLayout) findViewById(R.id.icon1);
icon1.setLayoutParams(params);
//etc