問題タブ [android-nestedscrollview]
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.
android - NestedScrollView が最後までスクロールされてアイドル状態かどうかを判断する方法は?
それを試しました:
しかし行き詰まった、誰かアイデアを持っていますか?
私が望むものを明確にするために-スクロール状態を観察し(RecyclerViewのaddOnScrollListenerのように)、スクロールが終了した(アイドル)ときに、ユーザーがNestedScrollViewの最後までスクロールした場合に1回だけチェックできるようにしたい.
android - ネストされたスクロールビューは、CoordinatorLayout で使用可能なスペースを占有しません
NestedScrollview
a の内部に aを実装することに関して問題に直面していCoordinatorLayout
ます。次のレイアウト コードを参照してください。
基本的に、ユーザーがコンテンツをスクロールすると、画面の上部にバーが表示されます。入力要素を持つカードで構成されるフォームです。ツールバーは、スクロール時にそのバーに道を譲ります。
問題は、NestedScrollview が完全な高さを取得せず、下部に大きな余白が残ることです。小さいビューでコンテンツをスクロールできますが。時々それは拡大しますが、EditTextでテキストの編集を開始するとすぐに、突然マージンが再び戻ります。
android - それを実行しているデバイスの API に応じて異なるクラスを拡張する Android 用のカスタム ビューを作成することは可能ですか?
を拡張するカスタム ビューを作成していますScrollView
。このビューでは、ネストされたスクロールが必要なので、現在のアプローチでは、ScrollView のandroid.support.v4.widget.NestedScrollView
属性は API 21 以降でしか使用できないため、実際には古いバージョンをサポートするように拡張しています。android:nestedScrollingEnabled="true"
私が行っている実験では、NestedScrollView の使用は効率が悪いと言えます。次に、2 つの異なるカスタム ビューを作成し、クライアントが適切なレイアウト リソース ディレクトリを使用してどちらか一方を使用できることを知りました。
しかし、私の質問は次のとおりです:それを使用するデバイスが API < 21 で実行されている場合にNestedScrollViewを内部的に拡張するカスタム ビューを作成する方法はありますandroid:nestedScrollingEnabled="true"
か? 私はそれがより良いと思いますが、それが可能であるか、どのように行うかはしないでください。
android - ItemTouchHelper を使用した NestedScrollView の最新の RecyclerView ネスト
RecyclerViewの最新の更新により、 NestedScrollView 内で wrap_content を実行できるようになりました。ただし、私には合わない動作がいくつかあり、答えを探しています。
問題点 1:ラッピングで空白が考慮されない。これは、RecyclerView コンテンツの後に空のスペースがある場合、ドラッグ アニメーションによって、次に示すように画面の中央で項目がクリップされることを意味します。
UPDATE : 問題 1 を解決しました。RecyclerView に layout_weight="1" 属性を追加する必要がありました。
問題 2:問題 1 と同様に、アイテムを削除すると、RecyclerView がアニメーションの開始時にすぐに折り返され、アニメーションが次のようにクリップされます。
更新: 問題 2 はまだ解決されていませんが、以前ほど目立たなくなりました。アイテムが削除されると、アイテムがビュー ポートにクリップされ、アニメーションがビュー ポートの下から引き上げられて、画面が新しい高さにジャンプするように見えます。
問題 3:新しいアイテムを追加するときに、ScrollView の最後までスクロールしたい。ただし、追加イベントで次のコードを実行すると、スクロールはすぐにスクロールビューの現在の末尾にジャンプします。「アイテムが挿入された後」のコールバックはありますか?
更新: 問題 3 はまだ解決されていませんが、次のように順序を逆にする回避策を見つけました。
そして、新しいアイテムを追加するときの以下のコード。このように、スクロールは高さに関係なく常に機能します。
引用した記事:
RecyclerView はその子をアニメーション化しますが、それ自体の境界の変更をアニメーション化しないことに注意してください。RecyclerView の境界が変化するときにアニメーション化する場合は、Transition API を使用できます。
境界をアニメーション化する必要はありませんが、スナップしてビューポートを埋める必要があります (この場合、リサイクラービューの上にいくつかの静的ビューがあるため、match_parent を使用できません)。したがって、問題1を解決します。
境界が変更される前に何かをしたい。例: on remove item 削除をアニメーション化してから、バインドされた変更を適用します。したがって、問題 2を解決します。
逆に、境界がすでに変更されているときにいくつかのことをしたいと思います。例: 新しいアイテムを追加すると、最初に新しい境界が適用され、次にスクロール アニメーションが開始されます。したがって、問題 3を解決します。
どうすればこれを達成できますか?
android - NestedScrollView が CoordinatorLayout と CollapsingToolbarLayout で最後の cardView を表示しない
AppBarLayout と CollapsingToolbarLayout を使用して CoordinatorLayout を設定しました。この部分では、すべて正常に動作します。AppBarLayout の下に NestedScrollView を配置しましたが、最後までスクロールすると、最後の cardview の半分しか表示されません。
私の活動では:
レイアウトの何が問題になっていますか? いくつかの例を見ましたが、すべてが私には良さそうです。