在scrollview内部,LinearLayout的背景会消失,具体取决于linearLayout的高度

时间:2012-12-20 14:25:17

标签: android android-fragments scrollview android-linearlayout

解决 通过在另一台平板电脑上调试我的应用程序“解决”了这个问题。我使用的第一款平板电脑是Samsung Tab 2 10.1。现在我使用的是三星Note 10.1,它运行正常。我很乐意从遇到相同问题的任何人那里获得一些反馈,以了解更多相关信息。

发表 这是我在这个论坛上的第一篇文章。 我正在开发一个Android应用程序,我正面临一个具有挑战性的问题。我没有找到任何与此问题相关的帖子,因为我不知道如何解决它我决定在这里解释一下。 让我们说这是给你的圣诞礼物;)

好的,这就是我的工作。基本上,我用这个xml文件来扩充一个片段:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
    <ScrollView
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" >
        <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:orientation="vertical" >
            <LinearLayout style="@style/LayoutDetailsStep" >
                <TextView
                   style="@style/textkey"
                   android:text="Name:" />
                <TextView
                   android:id="@+id/name"
                   style="@style/editkey" />
            </LinearLayout>
            <LinearLayout style="@style/LayoutDetailsStep" >
                <TextView
                   style="@style/textkey"
                   android:text="Description:" />
                <TextView
                   android:id="@+id/description"
                   style="@style/editkey" />
            </LinearLayout>
            <LinearLayout style="@style/LayoutDetailsStep" >
                <TextView
                   style="@style/textkey"
                   android:text="SOP:" />
                <WebView
                   android:id="@+id/sop"
                   style="@style/editkey" />
            </LinearLayout>
            <LinearLayout style="@style/LayoutDetailsStep" >
                <TextView
                   style="@style/textkey"
                   android:text="Notes:" />
                <TextView
                   android:id="@+id/notes"
                   style="@style/editkey" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

基本上,我的片段由一个由4个LinearLayouts组成的ScrollView组成,每个包含一个TextView和一个TextView / WebView。我将样式 LayoutDetailsS​​tep 应用于每个LinearLayout:

 <style name="LayoutDetailsStep"  >
     <item name="android:layout_width">fill_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:orientation">horizontal</item>
     <item name="android:background">@drawable/round_border</item>
     <item name="android:layout_marginLeft">20dp</item>
     <item name="android:layout_marginRight">20dp</item>
     <item name="android:layout_marginTop">5dp</item>
     <item name="android:layout_marginBottom">5dp</item>
 </style>

该样式包含一个背景* round_border *,就是这个:

 <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <corners android:radius="20dp"/>
        <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp" />
        <solid android:color="#ffffffff" />
        <stroke android:width="3dp" android:color="#000000"/>
    </shape>

当一切顺利的时候,我有一堆4个LinearLayout,有很好的圆形边框。只要LinearLayout中的项目很小,一切都很好。它看起来像这样:image when it's fine

当项目大于片段本身的大小时,会出现问题。 当WebView / TextView的高度(两者都有问题)大于片段的高度时,背景消失。它看起来像这样:background has disappeared

在实践中,TextViews非常小,并且不会发生这个问题。但是我可以显示相当大的WebView,这会导致背景消失,这意味着WebView的LinearLayout周围没有圆形边框。 我坚持认为它不是特定于WebView,如果TextView足够大,我会遇到同样的问题。

如果有人知道发生了什么......我很乐意阅读你的建议:D

Gordak

1 个答案:

答案 0 :(得分:0)

显然它已在4.0.4中修复。