Итак, у меня есть действие, которое содержит HorizontalScrollView
.Вот очищенный xml.
<android.support.v4.widget.DrawerLayout
style="@style/style_DrawerLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/toolbar_std"/>
<include
layout="@layout/btn_bar_scroll"/>
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<include
layout="@layout/navigation_view"/>
</android.support.v4.widget.DrawerLayout>
И мой btn_bar_scroll
(только три кнопки показаны для наглядности)
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation"horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="BTN1"
android:drawableTop="@drawable/ic1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="BTN2"
android:drawableTop="@drawable/ic2"/>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="BTN3"
android:drawableTop="@drawable/ic3"/>
</LinearLayout>
</HorizontalScrollView>
Работает нормально, именно так, как и ожидалось.За исключением того, что при использовании Show GPU View Updates
я заметил, что каждое представление на всей странице обновляется всякий раз, когда прокручивается та или иная часть (даже обновляется Toolbar
).Не очень хорошо для производительности.
Странно, если обернуть HorizontalScrollView
другим представлением, как, например, с этим FrameLayout
, ненужные обновления представлений прекращаются (только обновления HorizontalScrollView
при щелчке).Любой совет?Я бы предпочел не иметь лишних FrameLayout
для, казалось бы, без причины.
<FrameLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="BTN1"
android:drawableTop="@drawable/ic1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="BTN2"
android:drawableTop="@drawable/ic2"/>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="BTN3"
android:drawableTop="@drawable/ic3"/>
</LinearLayout>
</HorizontalScrollView>
</FrameLayout>