Android Scroll View太长了

时间:2013-04-02 22:06:26

标签: android xml eclipse android-scrollview

我是Android的新手 -

我在屏幕上放了一个滚动视图,我只是在里面放了一些文字。我这样做是因为在某些手机上文字会在屏幕上运行。

我遇到的问题是我放到页面上的滚动视图比它所拥有的内容更长 - 手机屏幕越窄,滚动视图就越长。

<?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="wrap_content"
    android:fillViewport="true" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/app_background"
    android:orientation="vertical"
    android:padding="10dp" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="20"
        android:inputType="textMultiLine"
        android:lineSpacingExtra="3dp"
        android:text="Get ready to melt fat and burn calories with Fit Body Boot Camp&apos;s 14 Day Fat Furnace Workout Program! This is a detailed 14 Day Workout plan based on Fit Body Boot Camp&apos;s Unstoppable Fitness Formula that has been implemented in close to 300 boot camps worldwide by hundreds of thousands of clients who made the decision to lose weight and get healthier."
        android:textColor="#FFF"
        android:textColorLink="#FFF"
        android:textSize="20sp" >
    </EditText>

在这之后还有一些更多的edittexts,但这是它的要点。如果你看到一些愚蠢的东西,请告诉我。

2 个答案:

答案 0 :(得分:11)

您的背景位于ScrollView中的线性布局中。 如果将滚动视图放在另一个线性布局中,该布局是ScrollView的父级并包含背景并从作为滚动视图的子项的线性布局中删除背景,则问题将得到解决。

看起来像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/app_background" >
<ScrollView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp" >

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="20"
    android:inputType="textMultiLine"
    android:lineSpacingExtra="3dp"
    android:text="THE LONG TEXT YOU'VE TYPED"
    android:textColor="#FFF"
    android:textColorLink="#FFF"
    android:textSize="20sp" >
</EditText>
</LinearLayout>
</ScrollView>
</LinearLayout>

答案 1 :(得分:1)

我认为scrollview应该填充父级,子视图包装内容,因为layout_height是视图在屏幕上实际具有的大小,滚动内容发生在视图中

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

修改

正如dbalaouras所指出的,更好地使用“match_parent”而不是“fill_parent”,因为后者已被弃用。结果是一样的,只是名称已被更改只是因为“填充”令人困惑,如果您设置它不会填充剩余空间但只是根据其父级设置维度