ScrollView不滚动?

时间:2015-09-23 16:21:42

标签: android

好的我正在尝试创建一个屏幕上有很多按钮,显然我用完了空间,所以我将我的布局设置为ScrollView,其下方有相对布局,然后将所有按钮放在其中。 / p>

继承人代码:

<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="1000dp" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:fillViewport="true"
tools:context="com.cecode.www.gjcode.MainTypes"
android:animateLayoutChanges="true">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Options Menu(placeholder)"
        android:id="@+id/optionsBtn"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="400dp"
        android:layout_height="80dp"
        android:text="Top Text"
        android:id="@+id/button1"
        android:layout_marginTop="110dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        />

    <Button
        android:layout_width="400dp"
        android:layout_height="80dp"
        android:text="placeholder text"
        android:id="@+id/button2"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/button1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="400dp"
        android:layout_height="80dp"
        android:text="placeholder text"
        android:id="@+id/button3"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/button2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="400dp"
        android:layout_height="80dp"
        android:text="placeholder text"
        android:id="@+id/button4"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/button3"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="mid text"
        android:id="@+id/textView3"
        android:layout_below="@+id/button4"
        android:layout_alignRight="@+id/optionsBtn"
        android:layout_alignEnd="@+id/optionsBtn"
        android:layout_marginTop="37dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="bottom text"
        android:id="@+id/textView4"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/textView3"
        android:layout_alignStart="@+id/textView3" />

</RelativeLayout>

</ScrollView>

下面是屏幕截图 -

Scrollview screenshot

我的问题是,当我在设备上测试它时,它不会滚动到中间文本点,所以我无法找到底部文本位。谢谢!

2 个答案:

答案 0 :(得分:2)

替换

$query = "SELECT users.first_name AS first_name, users.last_name AS last_name, messages.id AS mess_id,
                    messages.message AS message, DATE_FORMAT(messages.created_at, '%M %e %Y') AS time
            FROM users
            LEFT JOIN messages
            ON  users.id = messages.user_id
            ORDER BY time DESC";

            $results = fetch($query);
            foreach ($results as $row) { 
                $_SESSION['messages.id'] = $row['mess_id'];
                echo 
                    "<div class='post'>". 
                    $row['first_name']. " ". $row['last_name']. " - ". $row['time']. "<br>".
                        "<p class='mess_content'>". $row['message']. "</p>
                    </div><br>
                    <div class='posted_comm'>";
                        $query = "SELECT users.first_name AS first_name, users.last_name AS last_name, 
                                    comments.message_id, DATE_FORMAT(comments.created_at, '%M %e %Y') AS time, comments.comment AS comment
                                FROM users
                                LEFT JOIN comments
                                ON  users.id = comments.user_id
                                WHERE comments.message_id = '{$_SESSION['messages.id']}'
                                ORDER BY time ASC";
                        $results1 = fetch($query);
                        foreach ($results1 as $value) {
                            echo
                            "<div class='comments'>". 
                                $value['first_name']. " ". $value['last_name']. " - ". $value['time']. "<br>".
                                "<p class='comm_content'>". $value['comment']. "</p>
                            </div><br>";
                        }
                echo "<div class='write_comm'>
                        <form method='post' action='mess_comm.php'>
                            <input type='hidden' name='action' value='post_comm'>
                            Post a comment:<input type='text' name='comm' class='comm'>
                            <input type='submit' value='Post a comment' class='comm_sub'>
                        </form>
                    </div>";

android:layout_height="1000dp"

让我知道它是否有效

好的,你可以根据你的要求指定你可以使用带有verticla方向的LinearLayout,在中间和底部文本之间放置另一个带有wrap_content高度的线性布局来添加你的按钮如果你想在添加按钮之前有一些空间你可以指定minheight to布局看下面的代码

android:layout_height="match_parent"

答案 1 :(得分:1)

很难满足您的要求。让我解释一下它目前是如何运作的。 ScrollView没有给出确切的高度,所以当你为相对布局设置match_parent时,我猜它会为这个视图设置最大高度 - Integer.MAX_VALUE。这就是Android Studio警告您将match_parent更改为wrap_content的原因。 如果您需要在底部显示此视图 - 在运行时设置底部视图的边距。