【发布时间】:2016-04-04 09:59:37
【问题描述】:
我有一个在屏幕顶部有图像的活动。图片下方的所有内容都需要可滚动。见下图:
我尝试将 ScrollView 布局放在图片下方,但我不断收到一条错误消息,提示“语句意外结束”,但 ScrollView 的开始标签是正确的,所以我快疯了!
这是我的 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<RelativeLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.rkmsolutions.restaurantapp.MainActivity">
<ImageView
android:id="@+id/sapori_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitStart"
android:src="@drawable/sapori_logo_cropped"
tools:ignore="ContentDescription" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sapori_banner">
<ImageView
android:id="@+id/olivesAppetiserImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/olives512x512"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/oliveAppetiserTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/olivesAppetiserImage"
android:layout_toRightOf="@+id/olivesAppetiserImage"
android:gravity="start"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="@string/olivesAppetizerTitleTxtView"
android:textColor="#b71c1c"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/oliveAppetisersBodyDescription"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/olivesAppetiserImage"
android:layout_below="@+id/oliveAppetiserTitle"
android:layout_toEndOf="@+id/olivesAppetiserImage"
android:layout_toRightOf="@+id/olivesAppetiserImage"
android:gravity="center_vertical"
android:text="@string/oliveAppetizerDescription" />
<TextView
android:id="@+id/oliveAppetiserPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/oliveAppetisersBodyDescription"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/oliveAppetiserTitle"
android:layout_toRightOf="@+id/oliveAppetisersBodyDescription"
android:gravity="center"
android:text="@string/oliveAppetiserPriceText" />
<ImageView
android:id="@+id/bruschettaAppetiserImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/olivesAppetiserImage"
android:scaleType="centerCrop"
android:src="@drawable/bruschetta512x512"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/bruschettaAppetiserTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/bruschettaAppetiserImage"
android:layout_toEndOf="@+id/bruschettaAppetiserImage"
android:layout_toRightOf="@+id/bruschettaAppetiserImage"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="@string/bruschettaAppetiserTitle"
android:textColor="#b71c1c"
android:textSize="15sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/bruschettaAppetisersBodyDescription"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/bruschettaAppetiserImage"
android:layout_below="@+id/bruschettaAppetiserTitle"
android:layout_toEndOf="@+id/bruschettaAppetiserImage"
android:layout_toRightOf="@+id/bruschettaAppetiserImage"
android:gravity="center_vertical"
android:text="@string/bruschettaAppetiserDescription" />
<TextView
android:id="@+id/bruschettaAppetiserPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/bruschettaAppetiserImage"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/bruschettaAppetisersBodyDescription"
android:layout_toEndOf="@+id/bruschettaAppetisersBodyDescription"
android:layout_toRightOf="@+id/bruschettaAppetisersBodyDescription"
android:gravity="center_vertical"
android:text="@string/bruschettaAppetiserPriceText"
android:textAlignment="center" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/vegetarian_bruschetta512x512"
tools:ignore="ContentDescription"
android:id="@+id/veggieBruschettaAppetiserImage"
android:layout_below="@+id/bruschettaAppetiserImage"/>
<TextView
android:id="@+id/veggieBruschettaAppetiserTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/veggieBruschettaAppetiserImage"
android:layout_toEndOf="@+id/veggieBruschettaAppetiserImage"
android:layout_toRightOf="@+id/veggieBruschettaAppetiserImage"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="@string/veggieBruschettaTitle"
android:textColor="#b71c1c"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/veggieBruschettaDescription"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/veggieBruschettaAppetiserImage"
android:layout_below="@+id/veggieBruschettaAppetiserTitle"
android:layout_toEndOf="@+id/bruschettaAppetiserImage"
android:layout_toRightOf="@+id/bruschettaAppetiserImage"
android:gravity="center_vertical"
android:text="Toasted bread with grilled vegetarian antipasti" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/veggieBruschettaPrice"
android:gravity="center"
android:textAlignment="center"
android:text="@string/veggieBruschettaPriceString"
android:layout_toRightOf="@id/veggieBruschettaDescription"
android:layout_toEndOf="@+id/veggieBruschettaDescription"
android:layout_alignTop="@+id/veggieBruschettaDescription"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignBottom="@+id/veggieBruschettaAppetiserImage"/>
<ImageView
android:id="@+id/paneAglioImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:layout_below="@+id/veggieBruschettaAppetiserImage"
android:src="@drawable/garlic_bread_pizza512x512"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/paneAglioTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/paneAglioImage"
android:layout_toEndOf="@+id/paneAglioImage"
android:layout_toRightOf="@+id/paneAglioImage"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="@string/paneAglioTitleString"
android:textColor="#b71c1c"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:id="@+id/paneAglioDescription"
android:gravity="center_vertical"
android:text="@string/paneAglioDescriptionString"
android:layout_toEndOf="@+id/paneAglioImage"
android:layout_toRightOf="@+id/paneAglioImage"
android:layout_below="@+id/paneAglioTitle"
android:layout_alignBottom="@+id/paneAglioImage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:gravity="center"
android:textAlignment="center"
android:layout_alignBottom="@+id/paneAglioImage"
android:layout_toRightOf="@+id/paneAglioDescription"
android:layout_toEndOf="@+id/paneAglioDescription"
android:text="@string/paneAglioPriceString"
android:layout_alignTop="@+id/paneAglioDescription"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
这将是一个简单的解决方案,但我只是不知道还有什么可以尝试的! 谢谢!
【问题讨论】:
-
从滚动视图中删除您的图像
-
把
ImageView下面的所有内容都放到ScrollView里面,这样ImageView下面的内容就会滚动。 Qn:你的图片下方是ListView。如果是,则无需创建ScrollView,因为ListView默认会滚动。
标签: android xml android-layout android-studio android-scrollview