Android 中的动态相对布局:滚动不起作用

发布于 2024-10-31 03:19:44 字数 1046 浏览 7 评论 0原文

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

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);
    } 

I want to put a scroll in vertical orientation in a Relative Layout that i created programmatically. But my scroll do not work. Can anyone help me?
Here is the code that i'm using:

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);
    } 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

私藏温柔 2024-11-07 03:19:44

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

I think you need to be adding your buttonViews to the ScrollView instead of the layout. ScrollView is a container View (like RelativeLayout). I think what your code is doing is adding a 0 height ScrollView to the top of your RelativeLayout, then a button after that. Since the button is not in the ScrollView, your 20 buttons won't scroll.

夜灵血窟げ 2024-11-07 03:19:44

尝试如下可能有帮助

vscroll.addView(button);

Try as below it may help

vscroll.addView(button);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文