如何通过编程方式创建ScrollView?

12

我有一张名为“TABLE_SUBJECT”的表,其中包含许多科目。我需要创建一个水平滚动视图来显示这些科目。

如何以编程方式创建一个带有数据库项的ScrollView?如果我输入10个科目,则它们会出现在滚动视图中作为按钮。这可能吗?

5个回答

25

您可以按以下方式创建它:

ScrollView scroll = new ScrollView(context);
scroll.setBackgroundColor(android.R.color.transparent);
scroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                                             LayoutParams.FILL_PARENT));
scroll.addView(yourTableView);

你好,Waqas。正常的活动运作良好。但是,在Android OpenGL ES2.0中将此滚动视图添加到GLSurfaceview是否可能?这是我的示例代码..http://www.mediafire.com/download/09f9q51xnqhq2l7/LineDraw_samplecode.zip - harikrishnan
如何使滚动条可见并调整其宽度? - ARUNBALAN NV
@waqaslam 使用哪种 LayoutParams - Johnny Five
@JohnnyFive 我猜 ViewGroup 在这里应该可以胜任。 - waqaslam

5

如果你有很多元素,首先需要将它们包装起来并添加到滚动视图中;例如,我需要在滚动视图中放置许多文本视图,因此需要创建ScrollView->LinearLayout->Many textview。

                ScrollView scrollView = new ScrollView(context);
                scrollView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

                TextView textView = new TextView(context);
                textView.setText("my text");

                LinearLayout linearLayout = new LinearLayout(context);
                linearLayout.setOrientation(LinearLayout.VERTICAL);
                linearLayout.setGravity(Gravity.RIGHT);
                linearLayout.addView(textView);
                scrollView.addView(linearLayout);

3

这可能会对您有所帮助。

    HorizontalScrollView hsrll = (HorizontalScrollView)findViewById(R.id.hrsll);

    b = new Button(this);

    for (int i = 0; i < 5; i++) {

        b.setWidth(LayoutParams.WRAP_CONTENT);
        b.setHeight(LayoutParams.WRAP_CONTENT);

        b.setText("b"+i);
        b.setId(100+i);

        hsrll.addView(b);
    }

不要使用for循环,根据您的需要修改代码(数据库中的记录数)。但这是用于动态创建按钮的代码。


1
ScrollViews 只能包含一个子部件。如果需要多个子部件,请将它们包装在容器布局中。 - NikedLab
是的,因此您应该在ScrollView中创建至少一个布局(例如:LinearLayout),然后将Button等控件添加到该布局中。 - kfc

2

我是这样做的:

  • 创建一个包含LinearLayout的xml文件,放在ScrollView中
  • 创建一个作为ScrollView项的xml文件
  • 在activity中将主内容设置为带有ScrollView的xml文件
  • 循环遍历所有表格元素,并将新的View添加到LinearLayout中,以形成主视图

对我来说效果很好。


0
在 Kotlin 中,您可以使用以下代码。
    val scroll = ScrollView(context)
    scroll.setBackgroundColor(R.color.transparent)
    scroll.layoutParams = LayoutParams(
        LayoutParams.FILL_PARENT,
        LayoutParams.FILL_PARENT
    )
    scroll.addView(yourTableView)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接