【问题标题】:RelativeLayout Button Creation相对布局按钮创建
【发布时间】:2011-11-16 22:09:48
【问题描述】:

我正在尝试在按下按钮后创建按钮(这个按钮是用 XML 预制的)。 问题是,我可以在 LinearLayout 中执行此操作,但是当我每次运行 buttoncreator 方法时切换到 RelativeLayout 时,它会删除先前创建的按钮并创建一个新按钮。

更具体; 我的按钮创建方法

public void buttoncreator(String name,RelativeLayout.LayoutParams position,RelativeLayout layout){



    positionrandomer(position);
    final Button dummybutton = new Button(this);
    dummybutton.setText(name);

            //these are here for test,it works but still i have the same problem

    position.addRule(RelativeLayout.BELOW,R.id.button1);
    position.addRule(RelativeLayout.BELOW,R.id.button2);

    dummybutton.setLayoutParams(position);

      layout.addView(dummybutton);
      return;

}    

(位置随机器是一种设置随机边距的方法)。

我调用创建者方法的地方

Button luckbutton = (Button) findViewById(R.id.button1);

                luckbutton.setOnClickListener(new Button.OnClickListener(){

                            public void onClick(View arg0) {
                                name="Blue";
                buttoncreator(name,position,layout);
                name="Blu4e";
                buttoncreator(name,position,layout);





                                                            }
                                                                           });     

所以,我的意图是在 1 个按钮单击时创建 2 个按钮,但它只创建 1 个。(实际上,它创建第一个按钮,然后删除它并创建第二个按钮)。

显然,RelativeLayouts 有一些我不明白的地方, 我做错了什么?

提前谢谢

【问题讨论】:

    标签: android button onclick android-relativelayout


    【解决方案1】:

    我可以建议你做你想做的事情的解决方法。为什么不在你的 xml 文件中创建你的按钮,并在你的onCreate() 中将它们的可见性设置为View.GONE,在按钮的onClick 中将它们的可见性设置为View.VISIBLE。我认为这会做你想做的事情,我认为你不会对RelativeLayout 有问题。

    【讨论】:

    • 感谢您的快速回答,但是由于代码目的,这些按钮必须是非预定义的:/。这在 LinearLayout 中效果很好,为什么在 Relativelayout 中会这样?
    • 实际上我很确定它正在创建这两个按钮。 RelativeLayout 的问题是您必须设置 layout_below/layout_above 参数来对齐视图。如果您不这样做,它们将被卡在同一位置,这就是您认为它只创建第二个按钮的原因。尝试将您的第一个文本设置为更长的内容,例如:gdvasjdhaskdhajdhasj,您会看到它会保留在第二个按钮下方。
    • 完成,是的,我已经尝试过了,你是对的。当我修复代码时,我会回来的。非常感谢。
    • 我在 8 小时内无法回答我自己的问题,所以我在这里写了感谢 Android-Droid,问题是设置边距对于相对布局中的内容定位并不那么有效。为了解决这个问题,我在主相对布局中嵌套了一个线性布局,并在其中进行了定位。主要代码保持不变,只是将相对的更改为线性并在 XML 中嵌套线性布局非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多