如何在Horizo​​ntalScrollView中设置线性布局宽度?

时间:2013-12-31 14:46:00

标签: android android-layout android-linearlayout horizontalscrollview

我有一个LinearLayout(让我们称之为 A ),它的宽度设置为fill_parent,此布局包含一堆另一个LinearLayouts(让我们称之为 B ),我希望屏幕只显示 B &#39; s所以我将{{1>}的 A 分配为weight_sum,并将 B 的每一个分配为4,现在我想添加一个1,这样如果我有6个 B 布局,则只显示4个,其他两个将滚动。我构建此HorizontalScrollView以包含 A 布局(因为HorizontalScrollView应该只有一个直接子项),现在我添加到布局 A <的fill_parent宽度/ strong>被破坏,因为它现在服从HorizontalScrollView所以 B 布局宽度也被破坏了,看看下面的数字:

- 黄色:整个屏幕。

- 绿色 A 布局。

- 红色 B 布局。

我得到的结果:

enter image description here

我想得到的结果是:

enter image description here

我尝试将HorizontalScrollView和布局 A 的宽度设置为HorizontalScrollView和/或fill_parent,但对我没有任何作用

我的 XML 代码:

wrap_content

1 个答案:

答案 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