运行时的Android文本视图 - 文本视图膨胀为多行

时间:2017-03-16 09:15:42

标签: java android

如何在多个行和列中运行时创建多个文本视图?我已经膨胀了线性布局并使用for循环创建了文本视图。文本视图已成功创建,但我面临的问题是所有创建的文本视图仅在单行中。我也尝试用LayoutParams设置它,但无法修复它。如何解决这个问题?以下是我的代码

 LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

    appointmentSlotList = appointmentSlot.getAppointmentSlots();
    if(appointmentSlotList != null && appointmentSlotList.size()>0){
        for(int i = 0; i<appointmentSlotList.size(); i++){
            View appointmentInflater = layoutInflater.inflate(R.layout.appointment_time, null);


            TextView lblDate = (TextView) appointmentInflater.findViewById(R.id.appointmentTime);
            lblDate.setText(appointmentSlotList.get(i));
            lblDate.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
            //lblDate.setLayoutParams(lparams);
            lblDate.setOnClickListener(onclickTime);
            try {
                //if(previousSelected!=i)
                lnrDateContainer.addView(appointmentInflater);


            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

我的输出如下所示:

Output for the inflated text views shown below the date picker

4 个答案:

答案 0 :(得分:0)

将textview android layout gravity设置为填充

android:layout_gravity="fill"

如果上述内容无效,请参阅此问题:Android multi line linearlayout

答案 1 :(得分:0)

如果要在行和列中添加TextView,可以使用TableLayout并以实用方式添加TextView

检查此答案:https://stackoverflow.com/a/16939325/5345482

答案 2 :(得分:0)

要实现这些目标,我认为FlowLayout库可能符合您的要求。 使用此lib,您可以在一行中创建TextView,如果没有空格,则自动在下一行中插入视图。

链接:https://github.com/ApmeM/android-flowlayout

我希望能帮到你!

答案 3 :(得分:0)

Linear Layout中的方向指定为VERTICAL

<LinearLayout
----
android:orientation="vertical"
----  />