在 Scrollview 中交替使用 Textview 和 Imageview
Alternating Textview and Imageview inside a Scrollview
我正在尝试在我的滚动视图中交替显示文本和图像。代码没有错误,但是当我尝试 运行 应用程序时。它的力量关闭。我是 android 工作室的新手。我怎样才能解决这个问题?我试图在这里搜索答案,但我似乎无法找到我正在寻找的解决方案。
这是我的代码
<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>
Scrollview 只能包含一个child。所以将 imageViews 和 TextViews 放在 LinearLayout 中,然后将 LinearLayout 放在 ScrollView 中。
现在可以了
<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>
您在滚动视图中包含了过多的直接子项。滚动视图一次只能处理一个子视图,因此您必须将所有其他视图包装在一个视图下。
所以你的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>
现在应该可以了。
改为使用 Listview
或 Recyclerview
并使用自定义 Adapter
来交替显示图像和文本。那会好很多并且可控。
如果你仍然想只使用 scrollview,你可以只使用一个直接子节点到 scrollview.Add 一个线性布局作为 scrollview 的子节点,所有图像和文本视图作为该线性布局的子节点,如下所示
<ScrollView ..>
<LinearLayout ..>
<TextView ../>
<ImageView ../>
<TextView ../>
</LinearLayout>
</ScrollView>
我正在尝试在我的滚动视图中交替显示文本和图像。代码没有错误,但是当我尝试 运行 应用程序时。它的力量关闭。我是 android 工作室的新手。我怎样才能解决这个问题?我试图在这里搜索答案,但我似乎无法找到我正在寻找的解决方案。
这是我的代码
<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>
Scrollview 只能包含一个child。所以将 imageViews 和 TextViews 放在 LinearLayout 中,然后将 LinearLayout 放在 ScrollView 中。
现在可以了
<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>
您在滚动视图中包含了过多的直接子项。滚动视图一次只能处理一个子视图,因此您必须将所有其他视图包装在一个视图下。
所以你的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>
现在应该可以了。
改为使用 Listview
或 Recyclerview
并使用自定义 Adapter
来交替显示图像和文本。那会好很多并且可控。
如果你仍然想只使用 scrollview,你可以只使用一个直接子节点到 scrollview.Add 一个线性布局作为 scrollview 的子节点,所有图像和文本视图作为该线性布局的子节点,如下所示
<ScrollView ..>
<LinearLayout ..>
<TextView ../>
<ImageView ../>
<TextView ../>
</LinearLayout>
</ScrollView>