[解決済み] AppBarLayoutとスクロールビューの重ね合わせ
2022-11-23 04:23:10
質問
の「コンテンツが重なり合うフレキシブルスペース」パターンを実装したい。 マテリアルデザインのスクロールのテクニック のように この動画 :
今の私のXMLのレイアウトは次のようなものです。
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="192dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<....>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
デザイン ライブラリを使用して、これを簡単に実現する方法はありますか?それとも、カスタム CoordinatorLayout.Behavior を作成する必要がありますか?
どのように解決するのですか?
実は、スクロールビューをAppBarLayoutでオーバーレイするのは、インクルード機能として
Android デザイン支援ライブラリ
: を使用することができます。
app:behavior_overlapTop
属性は
NestedScrollView
(または
スクロールビュービヘイビア
を利用して、オーバーラップ量を設定することができます。
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:behavior_overlapTop="64dp">
なお
app:behavior_overlapTop
を持つビューでのみ動作します。
app:layout_behavior="@string/appbar_scrolling_view_behavior"
を持つビューに対してのみ機能します(通常属性が適用されるビューや親ViewGroupではなく)。
behavior_
という接頭辞があります。
あるいは、プログラム的に setOverlayTop() :
NestedScrollView scrollView = ...
CoordinatorLayout.LayoutParams params =
(CoordinatorLayout.LayoutParams) scrollView.getLayoutParams();
AppBarLayout.ScrollingViewBehavior behavior =
(AppBarLayout.ScrollingViewBehavior) params.getBehavior();
behavior.setOverlayTop(128); // Note: in pixels
関連
-
[解決済み】このアクティビティでは、Theme.AppCompatテーマ(またはその子孫)を使用する必要があります。
-
[解決済み】Android "ビュー階層を作成した元のスレッドだけが、そのビューに触れることができる"
-
[解決済み] 現在のアクティビティからルートビューを取得する
-
[解決済み] ViewPager PagerAdapter がビューを更新しない
-
[解決済み] スクロールすると背景のListViewが黒くなる
-
[解決済み] RecyclerView + AppBarLayoutでフライングする
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] Google Play ストア内部テストのロールアウトが開始できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] HttpPostによる画像送信
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] アダプタからActivityメソッドを呼び出す