【问题标题】:How do I get buttons not to sit on top of each other in RelativeLayout如何让按钮不在RelativeLayout中彼此重叠
【发布时间】:2015-12-26 04:51:42
【问题描述】:

我对这段代码有疑问。我需要动态地将按钮添加到我的布局中。此代码工作正常,但有一个例外。第二个按钮位于第一个按钮之上。这一定和LayoutParams有关,但我不确定。

private void buttonmaker (Button button)
{
RelativeLayout.LayoutParams rlayout = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    rlayout.addRule(RelativeLayout.CENTER_VERTICAL);
    rlayout.addRule(RelativeLayout.ALIGN_LEFT);
    rlayout.width = 100;
    button.setId(Atom.count);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
         int id = v.getId();
            atoms[id].getname();
            TextView textview = (TextView)findViewById(R.id.textView2);
            textview.setText(textview.getText()+String.valueOf(atoms[id].getname()));
        }
    });
    if (Atom.count > 1) rlayout.addRule(RelativeLayout.RIGHT_OF,Atom.count-1); else rlayout.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    button.setLayoutParams(rlayout);

    RelativeLayout v = (RelativeLayout) findViewById(R.id.rlayout);

    v.addView(button);
}

【问题讨论】:

  • 抱歉代码发布的方式。
  • “对不起,代码发布的方式”标签下方有一个编辑按钮;)
  • 我认为您应该使用实际 ID,而不是 Atom.count-1
  • 不幸的是,这并没有帮助,但我同意它使代码更清晰。
  • 你真的需要使用RelativeLayout吗? LinearLayout 不会有这个问题

标签: java android android-layout button layout


【解决方案1】:

问题是你在 relativelayout 中设置了 de 按钮,在这个组件中,对象被添加到另一个之上,你尝试根据你想要的和添加的按钮创建具有垂直或水平方向的全局线性布局,以及它的全部

【讨论】:

  • 我发现这是我的 Atom 类中的一个问题。这些按钮不再相互重叠。我现在的问题是单击创建的最后一个按钮会使程序崩溃。
猜你喜欢
  • 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
相关资源
最近更新 更多