添加两个或更多水平滚动视图后,水平ScrollView滞后

时间:2017-01-14 10:00:02

标签: android android-layout android-scrollview horizontalscrollview

{添加两个或更多水平滚动视图后水平ScrollView滞后}

当活动中有两个水平滚动视图时,应用程序工作正常,但当我添加第三个时,它开始滞后。

编辑:添加了XML布局:



    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#77a9f9"
tools:context="in.trentweet.socialaccess.home"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/social"
android:layout_marginTop="20dp"
android:text="Social Media:"
android:textSize="20sp"/>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:fillViewport="true">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="90dp"
android:background="#e2e2e2"
android:orientation="horizontal"
android:weightSum="1">

<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:clickable="true"
android:id="@+id/fb"
android:background="@drawable/facebook"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/tw"
android:clickable="true"
android:background="@drawable/twitter"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/google"
android:background="@drawable/google"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/insta"
android:background="@drawable/insta"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/tumblr"
android:background="@drawable/tumblr"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/yt"
android:background="@drawable/yt"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/gag"
android:background="@drawable/gag"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/pin"
android:background="@drawable/pin"/>

</LinearLayout>
</HorizontalScrollView>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/news"
android:text="News:"
android:textSize="20sp"
android:layout_marginTop="5dp"/>

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:fillViewport="true">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="90dp"
android:background="#e2e2e2"
android:orientation="horizontal"
android:weightSum="1">
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:id="@+id/toi"
android:clickable="true"
android:background="@drawable/toi"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/ndtv"
android:clickable="true"
android:background="@drawable/ndtv"/>
<ImageButton
android:layout_width="75dp"
android:layout_height="72dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/th"
android:clickable="true"
android:background="@drawable/th"/>
</LinearLayout>
</HorizontalScrollView>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sports:"
android:id="@+id/sports"
android:layout_marginTop="20dp"
android:textSize="20sp"/>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:fillViewport="true">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="90dp"
android:background="#e2e2e2"
android:orientation="horizontal"
android:weightSum="1">

<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:layout_marginBottom="5dp"
android:id="@+id/espn"
android:clickable="true"
android:background="@drawable/espn"/>
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/nba"
android:clickable="true"
android:background="@drawable/nba"/>
<ImageButton
android:layout_width="75dp"
android:layout_height="72dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/cric"
android:clickable="true"
android:background="@drawable/cricbuzz"/>
<ImageButton
android:layout_width="75dp"
android:layout_height="72dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/goal"
android:clickable="true"
android:background="@drawable/goal"/>
<ImageButton
android:layout_width="75dp"
android:layout_height="72dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/fot"
android:clickable="true"
android:background="@drawable/fotmob"/>
<ImageButton
android:layout_width="75dp"
android:layout_height="72dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:id="@+id/sky"
android:clickable="true"
android:background="@drawable/sky"/>

</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

我现在修改你的代码如下。我使用线性布局的 weightSum 属性来管理您的布局。我还在水平滚动视图 90dp中更改了 LinearLayout 高度以匹配父级。现在只需复制并粘贴即可。它几乎可以用于所有屏幕尺寸

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#77a9f9"
    android:weightSum="6"
    tools:context="in.trentweet.socialaccess.home"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1.1"
        android:id="@+id/social"
        android:layout_marginTop="10dp"
        android:text="Social Media:"
        android:textSize="20sp"/>
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="5dp"
        android:layout_weight=".9"
        android:scrollbarAlwaysDrawHorizontalTrack="true"
        android:fillViewport="true">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="#e2e2e2"
            android:orientation="horizontal"
            android:weightSum="1">

            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:layout_marginBottom="5dp"
                android:clickable="true"
                android:id="@+id/fb"
                android:background="@drawable/facebook"/>

            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/tw"
                android:clickable="true"
                android:background="@drawable/twitter"/>

            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/google"
                android:background="@drawable/google"/>
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/insta"
                android:background="@drawable/insta"/>
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/tumblr"
                android:background="@drawable/tumblr"/>
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/yt"
                android:background="@drawable/yt"/>
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/gag"
                android:background="@drawable/gag"/>
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/pin"
                android:background="@drawable/pin"/>

        </LinearLayout>
    </HorizontalScrollView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/news"
        android:text="News:"
        android:layout_weight="1.1"
        android:textSize="20sp"
        android:layout_marginTop="5dp"/>


    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="5dp"
        android:layout_weight=".9"
        android:scrollbarAlwaysDrawHorizontalTrack="true"
        android:fillViewport="true">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="#e2e2e2"
            android:orientation="horizontal"
            android:weightSum="1">
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:layout_marginBottom="5dp"
                android:id="@+id/toi"
                android:clickable="true"
                android:background="@drawable/toi"/>

            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/ndtv"
                android:clickable="true"
                android:background="@drawable/ndtv"/>

            <ImageButton
                android:layout_width="75dp"
                android:layout_height="72dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/th"
                android:clickable="true"
                android:background="@drawable/th"/>
        </LinearLayout>
    </HorizontalScrollView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="Sports:"
        android:layout_weight="1.1"
        android:id="@+id/sports"
        android:layout_marginTop="20dp"
        android:textSize="20sp"/>
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="5dp"
        android:layout_weight=".9"
        android:scrollbarAlwaysDrawHorizontalTrack="true"
        android:fillViewport="true">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="#e2e2e2"
            android:orientation="horizontal"
            android:weightSum="1">

            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:layout_marginBottom="5dp"
                android:id="@+id/espn"
                android:clickable="true"
                android:background="@drawable/espn"/>
            <ImageButton
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/nba"
                android:clickable="true"
                android:background="@drawable/nba"/>
            <ImageButton
                android:layout_width="75dp"
                android:layout_height="72dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/cric"
                android:clickable="true"
                android:background="@drawable/cricbuzz"/>
            <ImageButton
                android:layout_width="75dp"
                android:layout_height="72dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/goal"
                android:clickable="true"
                android:background="@drawable/goal"/>
            <ImageButton
                android:layout_width="75dp"
                android:layout_height="72dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/fot"
                android:clickable="true"
                android:background="@drawable/fotmob"/>
            <ImageButton
                android:layout_width="75dp"
                android:layout_height="72dp"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="5dp"
                android:id="@+id/sky"
                android:clickable="true"
                android:background="@drawable/sky"/>

        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout> 

谢谢