Android中的动态RelativeLayout:滚动不工作

时间:2011-04-08 18:06:36

标签: android scroll dynamic relativelayout

我想在我以编程方式创建的相对布局中以垂直方向放置滚动。但我的卷轴不起作用。谁能帮我? 这是我正在使用的代码:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.screen1); 
    for (i = 1; i < 20; i++) { 
        RelativeLayout.LayoutParams p = new 
        RelativeLayout.LayoutParams( 
                150, 
                RelativeLayout.LayoutParams.WRAP_CONTENT
        );
        layout.setScrollContainer(true);
        ScrollView vscroll = new ScrollView(this);
        vscroll.setFillViewport(true);
        layout.setVerticalScrollBarEnabled(true);
        layout.addView(vscroll);
        p.addRule(RelativeLayout.BELOW, i-1);
        p.addRule(RelativeLayout.CENTER_HORIZONTAL);
        Button buttonView = new Button(this);
        buttonView.setId(i);
        buttonView.setText(i);
        buttonView.setLayoutParams(p);
        buttonView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
            Dialog(((Button)arg0).getId());
            } });
        layout.addView(buttonView, p);
    } 

2 个答案:

答案 0 :(得分:1)

我认为您需要将buttonViews添加到ScrollView而不是布局。 ScrollView是一个容器视图(如RelativeLayout)。我认为你的代码正在做的是将一个0高度的ScrollView添加到RelativeLayout的顶部,然后再添加一个按钮。由于该按钮不在ScrollView中,因此您的20个按钮不会滚动。

答案 1 :(得分:0)

尝试如下可能有帮助

vscroll.addView(button);