linearlayout中的按钮垂直而不是水平显示?

时间:2013-09-30 18:07:44

标签: java android

我是Android的新手,我正在尝试在我的Android应用中动态添加按钮,问题是它们是垂直显示的,而这应该是水平的。

我得到了什么:

enter image description here

我期待(并且想要):

enter image description here

我正在使用的代码:

MainActivity.java:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    LinearLayout ll = (LinearLayout)findViewById(R.id.main_linearlayout);

    for(int x = 1; x <= 5 ; x++)
    {
        LinearLayout tmpLinearLayout = new LinearLayout(this);
        tmpLinearLayout.setOrientation(LinearLayout.VERTICAL);
        tmpLinearLayout.setLayoutParams( new LinearLayout.LayoutParams(
                LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT, 1.0f));
        tmpLinearLayout.getLayoutParams().height = 200;
        ll.addView(tmpLinearLayout); 

        for(int i = 0;i<5;i++)
        {

            Button tmpButton = new Button(this);
            tmpButton.setText("nr:" + i +" - " + x);

            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT, 1.0f);

            tmpLinearLayout.addView(tmpButton, lp);
        }
    }
}

布局(activity_main.xml):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:id="@+id/main_linearlayout"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:background="@drawable/background"
    android:orientation="horizontal" >
</LinearLayout>

任何人都可以解释为什么会这样做/纠正我? 谢谢!

2 个答案:

答案 0 :(得分:1)

您是以编程方式设置垂直方向.-

替换此行

tmpLinearLayout.setOrientation(LinearLayout.VERTICAL);

这一个

tmpLinearLayout.setOrientation(LinearLayout.HORIZONTAL);

PS:据我所知,Horizontal是默认方向,因此您实际上可以删除方向线。

答案 1 :(得分:0)

将xml布局中的android:orientation更改为vertical