2

我有一个使用滚动视图的布局。滚动视图中文本的第一部分在模拟器中被截断,在 HTC 手机上,滚动视图滚动到文本末尾,并且需要大量滚动才能返回文本。

Eclipse 抱怨“此 ScrollView 布局或其 LinearLayout 父级无用”,我怀疑此消息是我的问题的罪魁祸首,但很高兴得到纠正

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/Container"
    android:id="@+id/about">
        <ScrollView style="@style/Content">
                <TextView style="@style/Content"
                    android:id="@+id/about_content"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/about_text" />
        </ScrollView>
</LinearLayout>

款式

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MainTheme">
        <item name="android:textColor">@color/txtColor</item>
    </style>
    <style name="ApplicationTheme" parent="android:Theme">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:colorBackground">@color/mnuColor</item>
        <item name="android:textColor">@color/txtColor</item>
    </style>
    <style name="Container" parent="ApplicationTheme">
        <item name="android:textColor">@color/txtColor</item>
        <item name="android:layout_height">fill_parent</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:colorBackground">@color/mnuColor</item>
    </style>
    <style name="Webview" parent="Container">
        <item name="android:background">@drawable/web_background_image</item>
        <item name="android:windowBackground">@drawable/background_image</item>
        <item name="android:colorBackground">@color/mnuColor</item>
    </style>
    <style name="MyPlaceDialog" parent="@android:style/Theme.Dialog">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:orientation">vertical</item>
        <item name="android:stretchColumns">*</item>   
    </style>
    <style name="Content">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_gravity">center</item>
    </style>

    <style name="button" parent="@android:style/Widget.Button">
        <item name="android:background">@drawable/button</item>
        <item name="android:layout_marginTop">2dp</item>
        <item name="android:layout_marginBottom">3dp</item>
        <item name="android:layout_marginLeft">4dp</item>
        <item name="android:layout_marginRight">4dp</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>    
</resources>

Androids 文档在帮助解释为什么布局可能无用并且 Eclipse 也没有更好的帮助方面完全无用,因此非常感谢任何关于我需要做什么来解决这个问题的想法

4

1 回答 1

7

您的线性布局仅包含一个视图。因此,您的 LinearLayout 可以被消除,并且 ScrollView 可以成为您布局的根元素。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" style="@style/Content">
    <TextView style="@style/Content"
       android:id="@+id/about_content"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/about_text" />
</ScrollView>

请注意,lint 并不总是 100% 准确。虽然您可以删除视图是正确的,但它并不总是您想要或需要做的事情。

于 2012-05-01T14:48:13.367 回答