gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 17:54:03 25 4
gpt4 key购买 nike

我有一个 LinearLayout (我们称它为 A)它的宽度设置为 fill_parent ,这个布局包含一堆另一个 LinearLayouts (我们称它们为 B),我希望屏幕只显示 四个 B,所以我分配了 weight_sum A4并将每个 B 分配为 1 ,现在我想添加一个 HorizontalScrollView因此,如果我有 6 个 B 布局,则只会显示四个,另外两个会滚动。我 build 了这个 HorizontalScrollView包含 A 布局(因为 HorizontalScrollView 应该只有一个直接子级),现在我添加到布局 A 的 fill_parent 宽度被破坏了,因为它现在服从HorizontalScrollView所以 B 布局宽度也被破坏了,看看下面的数字:

-- 黄色:整个屏幕。

-- green :A 布局。

-- red :B 布局。

我得到的结果:

enter image description here

我想得到的结果:

enter image description here

我尝试设置 HorizontalScrollView 的宽度和布局 Afill_parent和/或 wrap_content但对我没有任何作用。

我的 XML 代码:

      <HorizontalScrollView 
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/A"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="4" >

<LinearLayout
android:id="@+id/B1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:weightSum="1" >

<LinearLayout
android:id="@+id/icon1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp"
android:layout_weight="0.5"
android:background="@drawable/ac_overlay"
android:orientation="horizontal"
android:tag="normal" >
</LinearLayout>

<LinearLayout
android:id="@+id/icon2"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp"
android:layout_weight="0.5"
android:background="@drawable/ac_overlay"
android:orientation="horizontal"
android:tag="normal" >
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/B2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:weightSum="1" >

<LinearLayout
android:id="@+id/icon3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp"
android:layout_weight="0.5"
android:background="@drawable/ac_overlay"
android:orientation="horizontal"
android:tag="normal" >
</LinearLayout>

<LinearLayout
android:id="@+id/icon4"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp"
android:layout_weight="0.5"
android:background="@drawable/ac_overlay"
android:orientation="horizontal"
android:tag="normal" >
</LinearLayout>
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>

最佳答案

你将无法仅从 xml 完成此操作,你需要一些动态代码来测量屏幕的宽度,然后以编程方式将每个线性布局(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

关于android - 如何在 Horizo​​ntalScrollView 中设置线性布局宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20858958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com