問題タブ [coordinator-layout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AppBarLayout が他のビューを match_parent に許可しない
Toolbar と TabLayout、ViewPager と FloatingActionMenu を含む AppBarLayout のレイアウトを使用しています。
私の問題は、AppBarLayout を使用すると、layout_height=match_parent を使用すると CoordinatorLayout 内の他のビューが画面全体と一致しなくなり、代わりに、この他のビューが AppBarLayout を除く親の残りの部分と一致することです。この動作は ViewPager に最適です。そうしないとコンテンツが AppBarLayout で覆われてしまうためですが、メニューが開いたときに画面を暗くできるように、FloatingActionMenu を画面全体に一致させる必要があります。
だから私の質問は: FloatingActionMenu が画面全体を引き継ぐようにするにはどうすればよいですか?
私のXML:
RelativeLayout をルート ビューとして使用するか、LinearLayout を使用して Toolbar と TabLayout を保持することで問題は解決しますが、CoordinatorLayout と AppBarLayout を使用してスクロール機能を追加する必要があります。
編集:
次の写真でわかるように、さまざまなデバイスでテストした後、この問題は新しいバージョンでのみ発生することがわかりました。
API 23:
android - Android バージョン 5 未満のデバイスではフローティング アクション ボタンが表示されない
何らかの理由で、フローティング アクション ボタンが 5 未満の Android バージョンのデバイスに表示されません。サポート ライブラリを使用しているため、CoordinatorLayout と FAB は 5 より前のバージョンでうまく動作するはずです。それは何ですか?
android - CollapsingToolbarLayout とスクロール中のツールバーの非表示
CoordinatorLayout と CollapsingToolbarLayout を使用して、組み合わせたレイアウトを作成しようとしています。
最初の状態で、一番上のページにいて、まだスクロールしていないとき、ツールバーを次のように拡張します (はい、実行しました)。
2 番目の状態では、下にスクロールし始めると、以下に示すように画像とツールバーが非表示になります (タブのみが表示されます)。
そして、最後の状態で、リストのある時点 (ただし、リストの一番上ではない) にあると、上にスクロールし始めたいと思います。以下に示すように、whowing を開始します (リストの一番上に到達しなかった場合、画像は表示されず、ツールバーのみが表示されます)。
最初の状態は達成できましたが、他の 2 つの状態には問題があります。CollapsingToolbarLayout 内にツールバーが実装されると、CollapsingToolbarLayout コンポーネントの外でツールバーを使用してできることの柔軟性が明確ではありません。ツールバーを非表示にすることはできません。そうすると、一番上に到達したときにのみ表示されます。
とにかく、現在の XML (以下に表示) は最初の画像が実装された状態ですが、下にスクロールし始めると、ツールバーは上部に留まり、非表示になりません。注: ツールバーを「固定」したままにするように指示する必要があります。そうしないと、ツールバー内の情報が消えて、空のツールバーだけが表示されるからです (これは別の記事で説明しますが、なぜこれが起こるのかを知るのは興味深いことです)。 .
ここに私の現在のxmlがあります:
android - Espresso、NestedScrollView または RecyclerView が CoordinatorLayout にある場合にスクロールが機能しない
やCoordinatorLayout
などの Espresso アクションの動作が壊れているようです。scrollTo()
RecyclerViewActions.scrollToPosition()
NestedScrollView に関する問題
このようなレイアウトの場合:
最初の問題をNestedScrollView
使用して内部の任意のビューにスクロールしようとすると、 . これは、このアクションがサポートするだけで拡張しないためです。この問題の回避策については、こちらで説明しています。基本的には、コードをコピーして、制約をサポートするように変更できます。が a にない場合は機能するようですが、 a の中に入れるとすぐにスクロールアクションが失敗します。ViewActions.scrollTo()
PerformException
ScrollView
NestedScrollView
scrollTo()
NestedScrollView
NestedScrollView
CoordinatorLayout
CoordinatorLayout
RecyclerView の問題
NestedScrollView
同じレイアウトの場合、を aに置き換えるRecyclerView
と、スクロールにも問題があります。
この場合、私は使用してRecyclerViewAction.scrollToPosition(position)
います。とは異なりNestedScrollView
、ここではスクロールが行われていることがわかります。ただし、間違った位置にスクロールしているようです。たとえば、最後の位置までスクロールすると、最後から 2 番目は表示されますが、最後の位置は表示されません。スクロールのRecyclerView
外に移動すると、正常に動作します。CoordinatorLayout
現時点では、CoordinatorLayout
この問題により、使用する画面用の Espresso テストを作成できません。同じ問題が発生したか、回避策を知っている人はいますか?
android - フローティング ボタンとアクティビティ/フラグメント アーキテクチャ
フローティング ボタンを実装する最適なアーキテクチャを見つけようとしています。これは私のシナリオです:
コーディネーターレイアウト、アプリバーレイアウト、ツールバー、フローティングボタン、およびフラグメントで使用するフレームレイアウトを備えた基本アクティビティがあります。最初のフラグメントにはビュー ページャーとタブ レイアウトが含まれ、各タブは別のフラグメント (recyclerview) です。問題は、同じものを実装する多くのアクティビティを持ちたくないので、アイテムをクリックすると別のフラグメントを開きたいということです。問題は、開いている新しいフラグメントにそのフローティング ボタンを付けたくないということです。
最適なアプローチはどれですか?
- フローティング ボタンがあるアクティビティとないアクティビティの 2 つがある
- 私がどのフラグメントであるかに応じて、フローティングボタンを非表示および表示します。
- 他のアプローチは素晴らしいでしょう..
これのアイデアはアーキテクチャを学ぶことです。どんな提案も私にとって素晴らしいでしょう
ありがとう