在Scrollview中交替显示Textview和Imageview

时间:2016-03-29 13:15:21

标签: android android-scrollview

我正在尝试在我的滚动视图中添加交替的文本和图像。代码没有错误,但是当我尝试运行应用程序时。它的力量关闭。我是android studio的新手。我怎样才能解决这个问题?我试图在这里搜索答案,但我似乎无法找到我正在寻找的解决方案。

这是我的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center"
              android:orientation="vertical">

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:gravity ="center"
                android:fillViewport="true"
                android:layout_alignParentStart="true"
                android:layout_marginTop="0dp"
                android:id="@+id/scrollView">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="#000"
            android:textColorLink="@android:color/black"
            android:textSize="18sp"

            android:text="hello"/>

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/cheese_1"/>


        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="#000"
            android:textColorLink="@android:color/black"
            android:textSize="18sp"
            android:text="hi" />

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/cheese_2"/>

    </ScrollView>

</LinearLayout>

4 个答案:

答案 0 :(得分:2)

而是使用ListviewRecyclerview并使用自定义Adapter来替代显示图片和文字。那将更好,更可控。

如果您仍然只想使用scrollview,则只能有一个直接子视图滚动视图。将线性布局添加为scrollview的子项,将所有图像和文本视图添加为该线性布局的子项,如下所示

<ScrollView ..>
  <LinearLayout ..>
    <TextView ../>
    <ImageView ../>
    <TextView ../>
 </LinearLayout>
</ScrollView>

答案 1 :(得分:0)

Scrollview只能包含一个孩子。所以在LinearLayout中放置imageViews和TextViews,然后将LinearLayout放在ScrollView中。

答案 2 :(得分:0)

现在可行了

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:gravity="center"
                  android:orientation="vertical">

        <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:gravity ="center"
                    android:fillViewport="true"
                    android:layout_alignParentStart="true"
                    android:layout_marginTop="0dp"
                    android:id="@+id/scrollView">

            <LinearLayout
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">
             <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:textColor="#000"
                android:textColorLink="@android:color/black"
                android:textSize="18sp"
                android:text="hello"/>

            <ImageView
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:src="@drawable/cheese_1"/>


            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:textColor="#000"
                android:textColorLink="@android:color/black"
                android:textSize="18sp"
                android:text="hi"/>

            <ImageView
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:src="@drawable/cheese_2"/>
    </LinearLayout>
        </ScrollView>

    </LinearLayout>

答案 3 :(得分:0)

滚动视图中包含太多直接子项。滚动视图一次只能处理一个孩子,所以你只需要在一个视图下包装所有其他视图。

所以你的xml现在看起来像这样

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center"
              android:orientation="vertical">

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:gravity ="center"
                android:fillViewport="true"
                android:layout_alignParentStart="true"
                android:layout_marginTop="0dp"
                android:id="@+id/scrollView">
    <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="#000"
            android:textColorLink="@android:color/black"
            android:textSize="18sp"

            android:text="hello"/>

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/cheese_1"/>


        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="#000"
            android:textColorLink="@android:color/black"
            android:textSize="18sp"
            android:text="hi" />

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/cheese_2"/>
    </LinearLayout>
    </ScrollView>

</LinearLayout>

现在应该可以了。