0

我有以下布局,但如果内容太多而无法显示,我想让它垂直滚动。ImageView, 'imagePhoto' 是使用设备相机拍摄的图像。如果照片是纵向拍摄的,那么布局需要能够滚动。我尝试在 LinearLayout 之前添加一个 ScrollView,如下所示:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

但它似乎没有用。

有什么建议么??

这是布局xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widgetUploadPhoto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffffff"
    android:orientation="vertical">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/topLevelMenuBackground"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/tvHeaderText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text=""
            android:textColor="#ffffffff"
            android:textSize="20sp"
            android:shadowColor="#7F000000"
            android:shadowDx="1"
            android:shadowDy="1"
            android:shadowRadius="2"
            android:layout_centerVertical="true" />
    </RelativeLayout>
    <TextView
        android:id="@+id/tvYourCurrentPhoto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:text="Your current photo:"
        android:background="#ffffffff"
        android:textColor="#ff626262"
        android:paddingTop="10dp" 
        android:paddingLeft="10dp"
        android:paddingBottom="10dp"
        android:textSize="@dimen/text_size_medium"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"
        android:visibility="gone" />
    <ImageView
        android:id="@+id/imagePhoto"
        android:src="@drawable/OrangeAccessoryButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_gravity="center_horizontal"
        android:background="#ffffffff"
        android:layout_marginLeft="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginBottom="0dp"
        android:paddingTop="15dp"
        android:paddingRight="15dp"
        android:paddingBottom="15dp"
        android:paddingLeft="15dp"
        android:visibility="gone" />
    <TextView
        android:id="@+id/empty"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:text="Select an option below to change your photo."
        android:background="#ffffffff"
        android:textColor="#ff626262"
        android:paddingTop="15dp"
        android:paddingRight="15dp"
        android:paddingBottom="15dp"
        android:paddingLeft="15dp"
        android:textSize="@dimen/text_size_medium" />
    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:focusable="false"
        android:layout_weight="1" />
</LinearLayout>

感谢您的任何帮助/建议。

更新的 XML:

注意:这可行,但不是预期的结果。我只希望RelativeView 中的东西滚动。第一个 TexView 是一个标题,我想保持静止并且它下面的视图可以滚动。基本上,一切都应该滚动,但相对 vie 部分。

<?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">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/widgetUploadPhoto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffffff"
        android:orientation="vertical">
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/topLevelMenuBackground"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/tvHeaderText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:text=""
                android:textColor="#ffffffff"
                android:textSize="20sp"
                android:shadowColor="#7F000000"
                android:shadowDx="1"
                android:shadowDy="1"
                android:shadowRadius="2"
                android:layout_centerVertical="true" />
        </RelativeLayout>
        <TextView
            android:id="@+id/tvYourCurrentPhoto"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Your current photo:"
            android:background="#ffffffff"
            android:textColor="#ff626262"
            android:paddingTop="10dp" 
            android:paddingLeft="10dp"
            android:paddingBottom="10dp"
            android:textSize="@dimen/text_size_medium"
            android:layout_marginLeft="0dp"
            android:layout_marginTop="0dp"
            android:layout_marginRight="0dp"
            android:layout_marginBottom="0dp"
            android:visibility="gone" />
        <ImageView
            android:id="@+id/imagePhoto"
            android:src="@drawable/OrangeAccessoryButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center_horizontal"
            android:background="#ffffffff"
            android:layout_marginLeft="0dp"
            android:layout_marginRight="0dp"
            android:layout_marginTop="0dp"
            android:layout_marginBottom="0dp"
            android:paddingTop="15dp"
            android:paddingRight="15dp"
            android:paddingBottom="15dp"
            android:paddingLeft="15dp"
            android:visibility="gone" />
        <TextView
            android:id="@+id/empty"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Select an option below to change your photo."
            android:background="#ffffffff"
            android:textColor="#ff626262"
            android:paddingTop="15dp"
            android:paddingRight="15dp"
            android:paddingBottom="15dp"
            android:paddingLeft="15dp"
            android:textSize="@dimen/text_size_medium" />
        <ListView
            android:id="@+id/listView"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:focusable="false"
            android:layout_weight="1" />
    </LinearLayout>
</ScrollView>
4

4 回答 4

2

This will have a header TextView that doesn't scroll at the top, followed by whatever you want below that scrolling vertically. Take note in particular of the ScrollView's attributes, the combination of android:height="0dp" and android:weight="1" will cause it to expand to fill all leftover space after the top TextView is drawn.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical>
    <TextView android:id="@+id/tvHeaderText"
        android:background="@drawable/topLevelMenuBackground"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:textColor="#ffffffff"
        android:textSize="20sp"
        android:shadowColor="#7F000000"
        android:shadowDx="1"
        android:shadowDy="1"
        android:shadowRadius="2" />
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
            <!-- Everything you want to scroll goes here -->
        </LinearLayout>
    </ScrollView>
</LinearLayout>
于 2013-02-01T19:39:04.870 回答
0

尝试这个

    <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widgetUploadPhoto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff"
android:orientation="vertical">
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/topLevelMenuBackground"
    android:orientation="horizontal">
    <TextView
        android:id="@+id/tvHeaderText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text=""
        android:textColor="#ffffffff"
        android:textSize="20sp"
        android:shadowColor="#7F000000"
        android:shadowDx="1"
        android:shadowDy="1"
        android:shadowRadius="2"
        android:layout_centerVertical="true" />
</RelativeLayout>
<TextView
    android:id="@+id/tvYourCurrentPhoto"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:text="Your current photo:"
    android:background="#ffffffff"
    android:textColor="#ff626262"
    android:paddingTop="10dp" 
    android:paddingLeft="10dp"
    android:paddingBottom="10dp"
    android:textSize="@dimen/text_size_medium"
    android:layout_marginLeft="0dp"
    android:layout_marginTop="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginBottom="0dp"
    android:visibility="gone" />
<ImageView
    android:id="@+id/imagePhoto"
    android:src="@drawable/OrangeAccessoryButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_gravity="center_horizontal"
    android:background="#ffffffff"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp"
    android:paddingTop="15dp"
    android:paddingRight="15dp"
    android:paddingBottom="15dp"
    android:paddingLeft="15dp"
    android:visibility="gone" />
<TextView
    android:id="@+id/empty"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:text="Select an option below to change your photo."
    android:background="#ffffffff"
    android:textColor="#ff626262"
    android:paddingTop="15dp"
    android:paddingRight="15dp"
    android:paddingBottom="15dp"
    android:paddingLeft="15dp"
    android:textSize="@dimen/text_size_medium" />
<ListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:focusable="false"
    android:layout_weight="1" />

</ScrollView>
于 2013-02-01T19:43:00.780 回答
0

结构如下所示:

<LinearLayout>
    <RelativeLayout>
        <TextView android:id="@+id/tvHeaderText" />
    </RelativeLayout>
    <ScrollView>
        <LinearLayout android:id="@+id/widgetUploadPhoto" >
            <TextView android:id="@+id/tvYourCurrentPhoto"/>
            <ImageView android:id="@+id/imagePhoto" />
            <TextView android:id="@+id/empty"/>
            <ListView android:id="@+id/listView"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

首先,有一个LinearLayout作为根。然后将您希望它始终位于顶部RelativeLayout的根目录下移动。LinearLayout接下来, ScrollView在 the 之后加上一个,RelativeLayout并将另一个LinearLayout作为孩子的ScorllView

另外,我不认为把 aListView放在里面ScrollView是一个好主意。见答案

于 2013-02-01T20:28:06.220 回答
0

您在手机或平板电脑上测试哪种设备?请注意,在手机上工作的内容可能不适用于平板电脑,因此对于手机和 sw600dp-land,您必须进行测试和定制。我已经为图表实现了 Scrollview,我在这里分享我的工作代码。

 <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="20sp">

        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:background="@drawable/back"
            android:scrollbars="vertical"
            android:textSize="20sp">
            <!--Month Combo Box-->
            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="20sp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Select Month"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />

                <Spinner
                    android:id="@+id/spinner"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />

                <Spinner
                    android:id="@+id/spinneryr"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />
            </TableRow>
            <!--Field1 Combo Box-->
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="20sp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/ERY"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />


                <EditText
                    android:id="@+id/ERYS"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/back"
                    android:gravity="center"
                    android:inputType="numberDecimal" />
            </TableRow>

            <!--Field9 Combo Box-->
            <TableRow
                android:id="@+id/tableRow10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="20sp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/PCOUNT"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />

                <EditText
                    android:id="@+id/PLS"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/back"
                    android:gravity="center"
                    android:inputType="numberDecimal" />
            </TableRow>
            <!--Field10 Combo Box-->
            <TableRow
                android:id="@+id/tableRow11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="20sp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/NES"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />

                <EditText
                    android:id="@+id/NESSS"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/back"
                    android:gravity="center"
                    android:inputType="numberDecimal" />
            </TableRow>
            <!--Field11 Combo Box-->
            <TableRow
                android:id="@+id/tableRow12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="20sp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/EOS"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />

                <EditText
                    android:id="@+id/EOSS"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/back"
                    android:gravity="center"
                    android:inputType="numberDecimal" />
            </TableRow>
            <!--Field12 Combo Box-->
            <!--Removed android:layout_gravity="center"-->
            <TableRow
                android:id="@+id/tableRow13"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:padding="20sp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/LYMS"
                    android:textColor="#0c0b0b"
                    android:textSize="20sp" />

                <EditText
                    android:id="@+id/LYMSS"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/back"
                    android:gravity="center"
                    android:inputType="numberDecimal" />
            </TableRow>
            <!-- Button :Start here-->
            <TableRow
                android:id="@+id/tableRow14"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="20sp">

                <Button
                    android:id="@+id/btnAdd"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/add" />
                <Button
                    android:id="@+id/btnViewAll"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/view_all" />

            </TableRow>

            <TextView
                android:id="@+id/tvValues"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:textSize="20sp" />
        </TableLayout>
    </ScrollView>
于 2016-10-02T00:45:32.930 回答