問題タブ [viewstub]
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 - ViewStub と View Visibility.GONE の違い
この質問は何度も尋ねられましたが、明確な答えが見つからなかったので、反対票を投じないでください。ViewStub の測定値が 0 で、必要なときにビューを膨らませることができる場合、ViewStub のビュー (進行状況) を初めて表示します。それを膨らませ、非表示にしたい場合は Visibility.GONE を設定し、それが必要な場合は Visibility.VISIBLE を設定します。さらに使用するために可視性を VISIBLE/GONE に設定する場合、viewStub の目的を理解したいと思います。さらに、ViewStub の高さが 0 の場合、Visibility GONE の View の高さも 0 です。つまり、インフレがないことを意味します。
java - ViewStub が膨張せず、レイアウトが空白のまま - Android
Navigation Drawer Activity
Android Studio でを起動すると生成されるサンプル コードを使用しています。私がやろうとしているのは、含まれているビューをプログラムで変更することです。私の調査では、ViewStub がこれを行うための最良の方法であることが示されています。しかし、私はそれを機能させることができません。問題のメイン レイアウトには、次の 3 つのファイルが関係しています。
activity_main.xml:
app_bar_main.xml:
content_main.xml:
以下は私の MainActivity.java です。何も起こっていないようで、content_main が表示されないようです。視認性の問題だろうか。
android - ビューの削除または追加 vs ViewStub
.remove() .addView() と ViewStub の使用の違いは何ですか? ViewStub はどのようにレイアウトのレンダリング効率を高めますか?
android - Android ViewStub はプログラムでレイアウトを変更します
これは私のユースケースです:
実行時に膨張したレイアウトを変更したい。最初にレイアウト a を膨張させ、しばらくしてからレイアウト B を表示し、次にレイアウト C などを表示したいとします。
メインレイアウトにレイアウトを含めてから非表示/非表示にするのではなく、ビュータブを使用して膨張させる必要があることをどこかで読みました。
私の問題は、最初のレイアウトを膨らませると正常に動作しますが、次に2番目のレイアウトを膨らませようとするとスタブがnullになることです。
私の理解では、Viewstub はレイアウトが読み込まれるコンテナーです。もしそうなら、2 番目のレイアウトを読み込もうとしたときに ViewStub を取得できないのはなぜですか? (これは、最初のレイアウト (A) を膨張させたときに、ViewStub が配置されていたレイアウトが完全に削除されたことを意味しますか?)
Viewstub または代替手段を使用してユースケースを実装するための指針を探しています。
android - 2 つのビュー追加アプローチのパフォーマンスの違い
ビューを動的に追加する ( ViewGroup の追加/削除ビュー メソッドを使用する) か、それらを静的レイアウト xml ファイルに入れ、バイナリ形式にコンパイルして実行時に膨張させる (通常の方法) のパフォーマンスの違いは何ですか?
ViewStub がオプションであることは知っていますが、まったく膨張しないという違いがあるのだろうか。
ありがとう
android - 最初の ViewStub の下に 2 つ目の ViewStub を追加するよりも、RelativeLayout にプログラムで ViewStub を追加します。
以下のコードで私が何をしているかを簡単に説明します。ViewStub (Vs) を作成し、それを RelativeLayout (Rl) に追加します。次に、同じ RL に新しい Vs を追加したいので、stub2 を作成して rl に追加します。次に、最初と 2 番目の Vs (rlInf1 、rlInf2) の Rl (inflatet) を参照します。次に、rlInf2 が rlInf1 の下になるように Rl.Layoutparams を設定しますが、それらは重複しています。新しい ViewStub が古い ViewStub の下になるように LayoutParams を設定するにはどうすればよいですか? 何か案は?
(ViewStub は XML ではなく Java コードで追加しました)
java - Android - プログラムでレイアウトを置き換え、ViewStub を使用する
複数のフィード アイテムを含むニュースフィード タイプのレイアウトを実装しようとしています。ニュースフィード アイテムは、折りたたまれたときに特定のレイアウトになり、アイテムがクリックされると、このレイアウトは「展開された」バージョンに置き換えられます。
カスタム項目の ListView を使用してこれを実現しました。カスタム アイテムの XML レイアウト ファイルには、レイアウトを前後に変更するために使用した ViewStub があります。ただし、レイアウトを RecyclerView に「移行」し、ViewHolder のデザイン パターンにも従いたいと思いました。後者は私が最初に試したもので、あらゆる種類の問題に遭遇しています。
私のアプローチは次のとおりです。
折りたたまれたレイアウト (events_list_item_content) と展開されたレイアウト (events_list_item_selected_content) への参照を取得します。
ViewStub レイアウト (view_stub_layout) として設定する単純なレイアウト リソース ファイルへの参照を取得します。
ViewStub 参照を取得し、そのレイアウト (view_stub_layout) をインフレートに設定し、折りたたまれたレイアウト ビューをこのレイアウトに追加します (最初にフィードを作成するとき、その項目はすべて折りたたまれます)。
(初期化後、アイテムがクリックされたとき) ViewStubLayout から前のビュー (レイアウト) を削除し、別のタイプのレイアウトを追加します。
これが私のカスタムアダプタークラスです:
ただし、テストすると、ニュースフィードが表示されるはずのページが空白になります。
android - ビューホルダーのビューが更新されない (高さを取得しない)
に構成されたビューホルダーがありますwrap_content
。そのビューホルダーでは、ユーザーがログインしていない場合にビューを表示します。このビューは として膨張しViewStub
ます。
画面の最初のセルでは、すべて問題ありません。しかし、画面の外にあるセルまでスクロールすると、うまくいきません。ビューは彼の身長を取りません。
android:id="@+id/background"
3 番目のセルView_NoLoggedInView
( 内のViewStub
) の は身長を取りません。
クラスとレイアウトを読みやすくするために、無関係なコードを削除しました。
彼が画面を離れてから再び入った場合にのみ3番目のセルが更新される理由と、これを解決する方法を知っている人はいますか?
ここでは、視覚的な問題を gif として見つけます。
ビューホルダー AXMLレイアウト:
膨張した View_NoLoggedInView viewstubレイアウト Axml コード:
クラスは次のとおりです。
}