将多个文本视图添加到水平线性布局

时间:2018-08-18 15:47:59

标签: java android android-layout android-linearlayout textview

嗨,我正在运行10次循环,每次创建一个新的TextView时,都会将该textview添加到我的线性布局中,该布局的方向设置为“水平”。我想以段落的形式显示这些文本,其中另一句开始,而一个句子结束。

这是我的布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".ui.QuestionActivity"
    android:padding="16dp"
    android:orientation="vertical"
    tools:showIn="@layout/activity_question">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/title"
        android:layout_gravity="center"
        android:textAppearance="?android:textAppearanceLarge"
        android:textColor="@android:color/black"
        android:textStyle="bold|italic"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_marginTop="10dp"
        android:id="@+id/base_layout"/>

</LinearLayout>

</ScrollView>

这是我的Java代码:

for(int i=0; i<10; i++){
        TextView textView = Utility.getTextView(this, i);

        if(i == 5) {
            textView.setText(sentences.get(i) + "\n" + "\n");
        }
        else {
            textView.setText(sentences.get(i) + " ");
        }

        mLayout.addView(textView);
    }

但是问题是,当方向设置为“水平”时,仅显示第一个文本视图,如果我将方向设置为“垂直”,则可以看到彼此下方的所有文本视图。

请帮助我。

1 个答案:

答案 0 :(得分:0)

您应该将base_layout LinearLayout包装在HorizontalScrollView下。

尝试以下方法,应该可以解决您的问题。我已经验证了自己。

<HorizontalScrollView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:scrollbars="horizontal">

      <LinearLayout
           android:id="@+id/base_layout"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_marginTop="10dp"
           android:orientation="horizontal" />
</HorizontalScrollView>