[解決済み] CoordinatorLayoutでツールバーの下にビューを追加する
質問
以下のようなレイアウトがあります。
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</android.support.design.widget.CoordinatorLayout>
を追加します。
Fragment
を
FrameLayout
で、それらを置き換えます。私の
Fragment
はリストで、次のようなレイアウトになっています。
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
ここで問題なのは
ツールバーがリストの上に描画される
. の内容をラップして解決しようとしました。
CoordinatorLayout
の中に
LinearLayout
その結果、過剰描画は解決されましたが、アプリバーのスクロール動作は機能しなくなりました。
どんなことでもご相談ください。
解決方法は?
属性を取る
app:layout_behavior="@string/appbar_scrolling_view_behavior"
をオフにします。
RecyclerView
の上に置き、それを
FrameLayout
の下に表示しようとしている
Toolbar
.
スクロールビューのビヘイビアが行う重要なことのひとつに、ツールバーの下にあるコンポーネントをレイアウトすることがありますね。 なぜなら
FrameLayout
は、スクロールする子孫を持つ (
RecyclerView
) の場合、その
CoordinatorLayout
を移動させるためのスクロールイベントを取得します。
Toolbar
.
もう一つ、気をつけることがあります。 そのレイアウトの動作によって
FrameLayout
の高さは
は、あたかも
Toolbar
はすでにスクロールされています
を使用し、さらに
Toolbar
が完全に表示されると、ビュー全体が押し下げられ、ビューの下部が
CoordinatorLayout
.
これには驚きました。 私は、ツールバーが上下にスクロールされると、ビューが動的にサイズ変更されると思っていました。 そのため、ビューの下部に固定されたコンポーネントを持つスクロールコンポーネントがある場合、完全にスクロールするまでその下部コンポーネントは表示されません。
Toolbar
.
そこで、UI の下部にボタンを固定したい場合は、ボタンを
CoordinatorLayout
(
android:layout_gravity="bottom"
) を作成し、ツールバーの下のビューにボタンの高さと同じ高さの底部マージンを追加します。
関連
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
Error:A problem occurred configuring project ':app'. > ビルドを見つけられませんでした。
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
Androidプロセス生存のためのソリューション
-
Androidのカラーグラデーション実装のまとめ
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
[解決済み] ツールバーに戻る矢印を表示する
最新
-
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エミュレーターのADBサーバーがACKしない問題
-
GIF、Lottie、SVGA
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
プロセス 'command 'F:\sdkbuild-tools', 26.0.2 AAAPT.exe' finished with non-zero exit value 1
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
Androidプロセス生存のためのソリューション
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
Androidのカラーグラデーション実装のまとめ
-
Android Studioのgitの使用とgitの設定パス
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について