【问题标题】:Create new RelativeLayout above existing TextView在现有 TextView 之上创建新的 RelativeLayout
【发布时间】:2014-10-11 17:58:47
【问题描述】:

在我的应用中创建一个新的RelativeLayout 上面已经存在的TextView 时遇到问题。

我的主要布局称为contentLayout,在其中我有一个TextView,称为addRoomButton

RelativeLayout contentLayout = (RelativeLayout) findViewById(R.id.contentLayout);
TextView addRoomButton = (TextView) findViewById(R.id.addRoomText);

我只想添加一个新的RelativeLayout 上方我的TextView 所以我写了这个:

RelativeLayout relativeLayout = new RelativeLayout(this);
relativeLayout.setId(R.id.roomRelativeLayout);
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.MATCH_PARENT,
       100
);
rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
rlp.addRule(RelativeLayout.ABOVE, addRoomButton.getId());
contentLayout.addView(relativeLayout, rlp);

RelativeLayout 很好地创建在我的contentLayout 的顶部,但我的TextView 不可见。我认为它就在relativeLayout 后面,但我不确定...

是否有任何解决方案可以将TextView 放在新的RelativeLayout 下面而不创建LinearLayout 或其他Layouts

【问题讨论】:

    标签: android android-layout layoutparams android-relativelayout


    【解决方案1】:

    用 xml 试试你的想法。将relativelayout与relativelayout(A)放在其中和按钮(B)。将 A 设置为 layout_above B 并查看没有成功。将 B 设置在 A 下方,即可获得所需的效果。因此,您需要获取按钮的 getLayoutParams() 并将其调整为低于新创建的布局。

    【讨论】:

      【解决方案2】:

      你为什么不通过 XML 来做呢?

      layout_below=""

      【讨论】:

      • 因为新布局的创建是由一个 OnClickListener 调用的,所以用户可以创建任意数量的布局。 **编辑:** layout_above 只有在我输入未来布局的 id 时才能工作,但它可以有许多新的布局。
      • 嗯好吧,那么看起来你的文本视图被隐藏了:(
      • 我也尝试了 setVisibility() 方法来确定,但没有任何改变,我想我必须为新的 relativelayout 和 textview 插入不同的布局
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多