【问题标题】:How to create Scrollview programmatically?如何以编程方式创建 Scrollview?
【发布时间】:2012-03-27 10:33:02
【问题描述】:

我有一张表“TABLE_SUBJECT”,其中包含许多主题。我需要创建
一个带有主题的水平滚动视图。

如何以编程方式创建带有数据库项的 ScrollView?如果我输入 1o 主题,那么它将作为一个按钮出现在滚动视图中。有可能吗?

【问题讨论】:

    标签: android database scrollview


    【解决方案1】:

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

    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 中?我的示例代码在这里..mediafire.com/download/09f9q51xnqhq2l7/LineDraw_samplecode.zip
    • 如何使滚动条可见并调整其宽度?
    • @waqaslam 使用了哪个LayoutParams
    • @JohnnyFive 我猜ViewGroup 在这里应该没问题
    【解决方案2】:

    如果你首先有很多元素,你需要在滚动视图中进行总结和添加;例如,我需要在滚动视图中添加多个文本视图,因此您需要创建 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 循环,只需根据需要修改代码(数据库中没有记录)。但这是动态创建按钮的代码。

      【讨论】:

      • ScrollViews 只能有一个子部件。如果您想要更多孩子,请将它们包装在容器布局中
      • 是的,因此您应该在 ScrollView 中创建至少一个 Layout(exp:Linearlayout),然后将 Button(etc.) 添加到 Layout。
      【解决方案4】:

      我是这样做的:

      • 在 ScrollView 中使用 LinearLayout 创建 xml
      • 在 ScrollView 中创建 xml 作为项目
      • 在活动中将主要内容设置为带有 ScrollView 的 xml
      • 循环遍历所有表格元素,向 LinearLayout 表单主视图添加新视图

      对我来说效果很好。

      【讨论】:

        【解决方案5】:

        在 Kotlin 中你可以使用下面的代码

            val scroll = ScrollView(context)
            scroll.setBackgroundColor(R.color.transparent)
            scroll.layoutParams = LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT
            )
            scroll.addView(yourTableView)
        

        【讨论】:

          猜你喜欢
          • 2016-11-21
          • 2021-08-07
          • 1970-01-01
          • 2022-10-19
          • 1970-01-01
          • 2013-03-10
          • 2013-11-15
          • 2013-12-28
          • 2011-02-10
          相关资源
          最近更新 更多