如何以编程方式创建多个gridview

时间:2017-08-29 07:59:34

标签: android

public class Dues extends Activity {

    static final String[] alphabets = new String[] { 
            "A", "B", "C", "D"};

    static final String[] alphabets1 = new String[] { 
            "E", "F", "G", "H"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dues);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, alphabets);

        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, alphabets1);

        RelativeLayout relativeLayout = new RelativeLayout(this);

        RelativeLayout.LayoutParams relativeLayoutParams = new 
        RelativeLayout.LayoutParams(
                                    RelativeLayout.LayoutParams.FILL_PARENT,
                                   RelativeLayout.LayoutParams.FILL_PARENT);

        GridView gridView= new GridView(this);

        gridView.setLayoutParams(new 
                      GridView.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        gridView.setNumColumns(4);

        gridView.setAdapter(adapter);

        Drawable myIcon = getResources().getDrawable(R.drawable.bg); 

        gridView.setBackground(myIcon);

        GridView gridView1 = new GridView(this);

        gridView1.setLayoutParams(new
                        GridView.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 

        gridView1.setNumColumns(4);

        gridView1.setAdapter(adapter);


        Drawable myIcon = getResources().getDrawable(R.drawable.bg); 

        gridView1.setBackground(myIcon);

    }
}       

所以这段代码创建了两个网格视图,但它重叠了。请帮我。 ABCD和EFGH都相互重叠。 像这样我想添加多个Gridview使用Scrollview。 任何人都可以帮我这个。 我希望它可以在另一个下面看到。

gridview的数量是动态的,也没有固定的数字,因此我希望它以编程方式创建而不是通过xml文件。 我也希望它是绿色透明的,所以任何人都可以帮我这个

1 个答案:

答案 0 :(得分:1)

GridView是可滚动的,因此您无法通过常规ScrollView实现所需目标。另一个问题是您正在创建两个GridView,但您没有将它们添加到任何父级。您需要做的是使用NestedScrollView创建LinearLayout orientation=vertical并将GridView添加到其中match_parent。将NestedScrollView应用于LinearLayoutLayoutParams.FILL_PARENT高度和宽度。另请注意,GridView身高不要使用WRAP_CONTENT,请使用console.time("Time"); var i=0; setTimeout(function(){console.log("Timeout...")},500); while(true){ if(i==1000000000){ console.timeEnd("Time"); console.log("whileloop breaking..."); break; } else{i++;} }