java动态添加按钮以滚动查看安卓
所以我想在安卓的布局中添加x个数量的按钮(x通常在4到24之间),我可以使用下面的代码实现这一点,但它不会滚动,所以它会切断一些按钮
我正在使用一个片段,它包含一个LinearLayout
和BottomNavigation
,其中一个导航选项指向下面包含的片段
此刻我的心在跳动。xml文件看起来像:
<ScrollView
安卓:layout_width="match_parent"
安卓:layout_height="match_parent">
<LinearLayout
安卓:id="@+id/units_group"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:layout_centerHorizontal="true"
安卓:layout_marginEnd="20dp"
安卓:layout_marginStart="20dp"
安卓:layout_marginTop="20dp"
安卓:orientation="vertical">
</LinearLayout>
</ScrollView>
我的代码是:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_course_units, container, false);
final LinearLayout unitsBtns = (LinearLayout) view.findViewById(R.id.units_group);
//I actually get this from a volley request but didn't want to include all the code
String[] units = {"1", "2", "3", "4", "5", "6", "7", "8"};
for(int i = 0; i < units.length; i++){
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
);
params.setMargins(0, 30, 0, 0);
Button b = new Button(getActivity());
b.setLayoutParams(params);
b.setText(units[i]);
b.setId(i);
b.setBackgroundColor(Color.WHITE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
// STUFF HERE
} catch (Exception e) {
e.printStackTrace();
}
}
});
unitsBtns.addView(b);
}
return view;
}
有没有办法让按钮可以滚动?我也试着把scrollView
放在它的父对象周围,但它似乎仍然不起作用
注意:我对开发原生Android应用程序还很陌生,所以如果我做得不对,请纠正我
# 1 楼答案
当您必须使用
ScrollView
时,您应该在ScrollView
的子视图中提供android:layout\u height=“wrap\u content”,然后只需滚动视图您应该像这样使用用户
LinearLayout
这里也有你要更换的
注意:当您在高度属性中指定
match_parent
时,它会将您的视图限制在设备屏幕上希望它能帮助你……)
# 2 楼答案
下面是一个工作示例(水平):
获取滚动视图和布局:
动态创建按钮:
将按钮添加到布局: