gpt4 book ai didi

android - 始终在 Horizo​​ntalScrollView 中显示 3 个按钮

转载 作者:搜寻专家 更新时间:2023-11-01 08:45:31 25 4
gpt4 key购买 nike

3 buttons scrollview

大家好,我正在尝试在 Android 上显示 3 到 X 按钮。这个想法是始终从 3 个按钮开始,每个按钮占据屏幕大小(宽度)的 33%,并且能够水平滚动项目。

这些项目也将以编程方式添加到 View 中。

我试图将 LinearLaout 水平放置在 Horizo​​ntalScrollView 中。然后将child 添加到线性布局中。但项目会调整大小并且不会滚动。

这是正确的方法吗?或者有人知道如何制作吗?

类.java

HomeCircledButton button = HomeCircledButton_.build(this);
button.title.setText(sc.get(i).getLabel());
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 0.33f));
homeButtonsLL.addView(button);

布局.xml

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center"
android:weightSum="1.0"
android:id="@+id/home_buttons_ll">
</LinearLayout>
</HorizontalScrollView>

我还尝试创建已经在 XML 中的按钮并以编程方式隐藏它们 (View.GONE) 但它们只是调整大小

最佳答案

如果您动态设置大小并且有未知数量的 subview ,则 weight 方法不可行。取而代之的是获取屏幕的宽度,并根据它设置按钮的宽度。还,LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 0.33f)); 您代码中的这一行将无法按预期工作。您需要将参数设置为按钮才能使其工作。

你可以试试这样的,

HomeCircledButton button = HomeCircledButton_.build(this);
button.title.setText(sc.get(i).getLabel());
//divide the screen width by 3
int buttonWidth = getScreenWidth() / 3;
LinearLayout.LayoutParams buttonparams= new LinearLayout.LayoutParams(buttonWidth, LinearLayout.LayoutParams.MATCH_PARENT);
button.setLayoutParams(buttonparams);
homeButtonsLL.addView(button);

...

private int getScreenWidth( ) {
DisplayMetrics displayMetrics = new DisplayMetrics();
int width;
getWindowManager().getDefaultDisplay()
.getMetrics(displayMetrics);
width = displayMetrics.widthPixels;
return width;
}

而且您不必在 xml 中设置权重和,

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center"
android:id="@+id/home_buttons_ll">
</LinearLayout>
</HorizontalScrollView>

关于android - 始终在 Horizo​​ntalScrollView 中显示 3 个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28749777/

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