Horizo​​ntalScrollView不仅仅针对Galaxy S2和S3滚动

时间:2013-10-21 23:14:27

标签: android android-layout galaxy

在我的应用程序中,我有一个底栏,可以有很多标签,我可以滚动到它们。 在Galaxy S2和S3以外的其他设备中滚动效果很好但在三星S2和S3中滚动不起作用,因此无法访问某些标签(见图)。

show where scroll

这是我的底部栏的代码(图中的蓝色):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/svContainerParent"
android:layout_width="match_parent"
android:layout_height="@dimen/height_tab_fragment_bottom"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal" >

<LinearLayout
    android:id="@+id/svContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/LanguageContainer"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:clickable="true"
        android:gravity="center"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" >

        <ImageView
            android:id="@+id/FlagLanguage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginRight="5dp"
            android:src="@drawable/english_r" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/svHolder"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center" >

        <HorizontalScrollView
            android:id="@+id/scrollViewTabs"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="center" >
        </HorizontalScrollView>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/command"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center"
        android:padding="5dp" >

        <RelativeLayout
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="center"
            android:gravity="center" >

            <ImageView
                android:id="@+id/cartImage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center" />
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/textCommand"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:padding="5dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/cartName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/cart_name"
                android:textSize="12sp" />
            <TextView
                android:id="@+id/cartPrice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="0.00 €"
                android:textSize="8sp" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

这是银河系中的一个错误吗?或者我做错了什么?(但为什么它适用于所有其他设备) 如果有人希望看到这个问题,这里是the link of the app on the Play Store

2 个答案:

答案 0 :(得分:0)

 <LinearLayout
            android:id="@+id/svHolder"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center" >

            <HorizontalScrollView
                android:id="@+id/scrollViewTabs"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center" >
            </HorizontalScrollView>
        </LinearLayout>

尝试删除线性布局并保留HorizontalScrollView

答案 1 :(得分:0)

布局上有些奇怪的事情:

1)为什么你有两个嵌套的水平LinearLayouts? (svContainerParent和svContainer) 无论你想做什么,你都可以只用一个。

2)从RelativeLayout中删除android:gravity =“center”。它没有做任何事情。

3)删除包裹Horizo​​ntalScrollView的第一个LinearLayout。将相关参数放在Horizo​​ntalScrollView本身上。

4)最后,你为什么要让RelativeLayout包装你的ImageView?如果您希望视图位于另一个视图的顶部(或后面)(在屏幕截图中似乎不是这种情况),您只能使用RelativeLayout。

我认为其中一种情况导致某些设备无法滚动的问题。让我知道它是否有帮助!