在ScrollView中以编程方式创建视图

时间:2014-03-27 04:05:01

标签: java android xml

我想将以编程方式创建的视图添加到ScrollView中,并在XML文件中声明ScrollView。怎么做到这一点?

package com.example.multipleviews;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Toast;

public class MainView extends Activity {

    LinearLayout main, child;
    ScrollView sc;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_view);
        main = (LinearLayout) findViewById(R.id.main);
        // Toast.makeText(getApplicationContext(), "hello", 0).show();
        view();
    }

    private void view() {
        // TODO Auto-generated method stub
        main.removeAllViews();

        sc = (ScrollView) findViewById(R.id.sc);
        sc.removeAllViews();

        child = (LinearLayout) findViewById(R.id.lin);
        child.removeAllViews();

        for (int i = 0; i < 5; i++) {
            Button b = new Button(this);
            b.setText("Button "+i);
            b.setId(i);
            child=(LinearLayout)findViewById(R.id.lin);
            child.addView(b);

        }
        sc.addView(child);
        main.addView(sc);
        setContentView(main);

    }

}

这是我的代码.....但是应用程序没有运行.....

4 个答案:

答案 0 :(得分:1)

步骤1:在ScrollView中添加任何布局容器(例如线性布局)

<ScrollView android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
   <LinearLayout android:id="@+id/resultContentHolder"
  android:layout_width="fill_parent"
  android:orientation="vertical"
  android:gravity="center_horizontal|top" 
  android:layout_height="fill_parent" />
</ScrollView> 

步骤2:在例如

的活动段中的布局容器中添加任何自定义视图
LinearLayout gapH = new LinearLayout(this);
            LayoutParams gapParamsH = new LayoutParams(LayoutParams.FILL_PARENT,10);
            gapH.setLayoutParams(gapParamsH);
            resultContentHolder.addView(gapH);   

答案 1 :(得分:0)

firs创建子布局,您可以创建动态视图。您可以引用此link来添加动态视图。

答案 2 :(得分:0)

您确定要使用ScrollView吗?听起来你可能会更好地使用ListView

如果您需要ListViewthis tutorial on vogella.com  是我知道如何使用它们的最好的教程之一。

答案 3 :(得分:0)

// Find the ScrollView 
ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);

// Create a LinearLayout element
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);

// Add Buttons
Button button = new Button(this);
button.setText("Some text");
linearLayout.addView(button);

// Add the LinearLayout element to the ScrollView
scrollView.addView(linearLayout);

See this link