ProgressBar
がツールバーと共に上下にスクロールされるのを防ぐ方法はありますか?今、私はRecyclerView
の項目があるときに上下にスクロールするはずの2つのツールバーを持っていますが、表示する結果がないときにスクロール動作がツールバーの下のレイアウトに影響してしまうという問題があります。見てみましょう: ProgressBarがツールバーと共にスクロールされないようにするにはどうすればよいですか?
言うまでもなく
と言って、プログレスバーは、どのような状況下にスクロールするべきではありません。<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
fragment_list.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"/>
<!-- include pogress bar-->
<include
android:id="@+id/progress_bar"
layout="@layout/progress_bar"
android:visibility="gone" />
</RelativeLayout>
progress_bar
はちょうどあなたの規則的である:
activity_base.xml
ザ・は<include layout="@layout/activity_masterdetail"/>
含ま
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="64dp"
android:minHeight="64dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbarBottom"
android:layout_width="match_parent"
android:layout_height="64dp"
android:minHeight="64dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:layout_gravity="bottom"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner
android:id="@+id/spinner_sites"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Spinner
android:id="@+id/spinner_sort_field"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Spinner
android:id="@+id/spinner_sort_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/activity_masterdetail"/>
<View
android:id="@+id/view_search_tint"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.0"
android:background="#88000000"
android:elevation="2dp"
android:layerType="hardware"
android:visibility="gone" />
<org.cryse.widget.persistentsearch.PersistentSearchView
android:id="@+id/searchview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:elevation="4dp"
app:persistentSV_logoString="@string/app_name"
app:persistentSV_searchTextColor="?android:textColorPrimary"
app:persistentSV_editTextColor="?android:textColorPrimary"
app:persistentSV_editHintText="Search"
app:persistentSV_editHintTextColor="?android:textColorHint"
app:persistentSV_displayMode="toolbar"
app:persistentSV_homeButtonMode="burger"
app:persistentSV_searchCardElevation="2dp"
app:persistentSV_customToolbarHeight="64dp"
app:layout_behavior=".ScrollingSearchViewBehavior"/>
</android.support.design.widget.CoordinatorLayout>
</android.support.v4.widget.DrawerLayout>
がactivity_fragment.xml
を指す参照です:これがレイアウトされています、r今のミルプログレスバーのUN:
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.wrap_content.com/apk/res-auto"
android:id="@+id/pbLoading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="invisible"/>
あなたはSearchViewのレイアウトはすべて、この問題が起こっているなぜ私にはわからない非常に標準である以外に見ることができるように。私は、activity_fragment.xml
からapp:layout_behavior="@string/appbar_scrolling_view_behavior"
を削除すると、問題が発生しなくなりましたが、RecyclerView
がツールバーに揃えられておらず、結果が画面全体に表示され、ツールバーとすべてをカバーしています。それは確かに私が起こりたいものではありません。
RecyclerView
の表示を 'なくなった'とマークすると、ProgressBar
のスクロールも停止しますが、同じことが集中されていないため、画面がスクロールできないという問題があります。ほぼすべてのコンテナにandroid:fitsSystemWindows="true"
属性を設定しても機能しませんでした。私は運がないと思うほとんどすべてのレイアウト属性を調整しようとしましたが、何か助けていただければ幸いです。
あなたは 'CoordinatorLayout'またはそれの' RelativeLayout'の外プログレスバーなどの外にそれを含めてみましたがありますか?あなたがスクロールすることを避けたいならば、それは 'RecyclerView'と同じ深さにすべきではありません(つまり、recyclerViewの '上にある') – Shark
私はそれがアクティビティとフラグメントからでなければならないと言いますアクティビティのコールバックを使用して呼び出すことができます – xAqweRx
@Shark私はそれについて考えましたが、フラグメントのレイアウト内に集中させたいのは、いくつかの解像度では2つのペインレイアウトになり、他のペインと(そして中央に)集中します。 2つのペインのGmailアプリと同様に、タブレットでも同様です。 –