【问题标题】:Android, scroll view and useless layoutAndroid,滚动视图和无用的布局
【发布时间】:2012-05-02 00:09:41
【问题描述】:

我有一个使用滚动视图的布局。滚动视图中文本的第一部分在模拟器中被截断,而在 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 也没有更好的帮助方面完全无用,因此非常感谢我需要做些什么来解决这个问题的任何想法

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    您的线性布局仅包含一个视图。因此,您的 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% 准确。虽然您可以删除视图是正确的,但它并不总是您想要或需要做的事情。

    【讨论】:

    • 这确实有效并且确实解决了滚动问题。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多