android - 如何以编程方式设计此布局?

标签 android android-layout android-relativelayout

我有一个父线性布局。

我需要在屏幕底部放置三个按钮,不是通过 XML 而是通过 Java 代码水平对齐。
按钮 1 应位于屏幕左侧
按钮 2 应位于屏幕底部
按钮 3 应位于屏幕右侧

这是需要设计的布局:

enter image description here

我的理解是我必须向我的父布局添加相对布局。 以及按钮的一些规则。

这是我尝试过的

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    l=(LinearLayout)findViewById(R.id.mainl);
    rl=new RelativeLayout(this);
    b1=new Button(this);
    b2=new Button(this);
    b3=new Button(this);
    b1.setText("Button 1");
    b2.setText("Button 2");
    b3.setText("Button 3");
    rl.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
    RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    lay.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

    rl.addView(b1);
    rl.addView(b2);
    rl.addView(b3);

    l.addView(rl);

}

而且按钮也不位于底部。它们出现在屏幕顶部。

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainl"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>

最佳答案

要将按钮添加到RelativeLayout运行时,您必须传递参数值。

尝试将按钮 b1 放在左侧:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
rl.addView(b1, params);

关于android - 如何以编程方式设计此布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21300259/

相关文章:

android - 将按钮放在一行中,所有按钮之间的间距相同

android - 没有支持库的 BetterPickers

java - 将图像附加到 TextView

android - 如何在 Android 中绘制多行文本并在 Canvas 上旋转

java - Android:加载 xml 布局时出现 OutOfMemoryError。我该如何避免它意味着什么?

android - 相对布局 : Many options if elements are GONE

android - 特殊键的keyBackground - android键盘

java - 如何在请求正文中发送嵌套的 json 对象

android - 在 2 个线性布局之间添加颜色渐变

java - 未找到与给定名称匹配的资源,即使该资源存在