問題タブ [android-tablayout]
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 - Android フラグメントの置換に関する問題
私が持っているもの:
API 22 で最新の Android サポートとデザイン ライブラリを使用しています。次のように、アプリが最初にインストールされたときにのみ実行するProgressFragmentというフラグメントがあります。
これがレイアウトです
このフラグメントにはAsyncTaskが含まれています。完了すると、次のように AsyncTask コールバックonPostExecute()内のMainActivityの別のフラグメント ( MainFragmentと呼ばれる) に置き換えられます。
これはMainFragmentレイアウトです。
編集:
これは MainActivity のレイアウトです。
問題:
ProgressFragment の AsyncTask が完了し、MainFragment に置き換えられると、TabLayoutビューにタブが表示されません。
私のアプリケーションには、起動時に 2 つの可能なパスがあります。次のいずれかです。
ProgressFragment を追加します (最初に実行した場合) -> 次に MainFragment に置き換えます
それ以外の場合は MainFragment を追加します (ここではタブが正常に表示されます)
どちらの Fragment 置換も MainActivity で行われます。
問題はパス1を扱います
編集2:
MainActivity でrecreate()を呼び出すと、今のところこれが「修正」されます。私はそれを解決策とは呼びませんが。後で戻ってきます。
android-studio - Android Design Support Library - ツールバー付きのタブレイアウト
eclipse から Android Studio に移行したばかりで、発生したいくつかの問題を修正しています。その 1 つは、ActionBar が提供するタブ ナビゲーションを削除し、AD サポート ライブラリが提供する Tablayout に切り替えることです。すべてうまく機能していますが、特定のフラグメントが画面に表示されているときにツールバーにメニュー項目を追加する方法がわかりません。
問題の一部は、私の MainActivity が setActionBar() を受け取る FragmentActivity を展開し、ツールバーが v7 サポート ライブラリからのものであることだと思います。もちろん、そのツールバーはそのメソッドと互換性がありません。setSupportActionBar() を試しましたが、それは FragmentActivity にあるメソッドではありません。ここでは、ActionBarActivity を展開してそのメソッドにアクセスする必要があります。どちらも非推奨です (クラスとメソッド)。
個々のフラグメントがツールバーのオプション メニューで利用可能なオプションを更新する方法を教えてください。
activity_main.xml:
MainActivity.java:
例Fragment.java:
android - 可視性が GONE から VISIBLE に変わると、TabLayout テキストが消える
Android の TabLayout に問題があります。最小 SDK が 10 であるため、AppCompat ライブラリを使用しています。問題は、アクティビティが最初に作成されたときに TabLayout の可視性が GONE になっている場合、後で可視性を VISIBLE に設定すると、タブのタイトルとタブ インジケーターが表示されないことです。
これが私のMainActivityです:
TabActivity は次のとおりです。
ページ アダプタ:
断片:
レイアウトも非常にシンプルです。
activity_main.xml
activity_tab.xml
my_fragment.xml
TabActivity.onCreate で可視性 GONE を設定すると失敗します。TabActivity.onCreate で VISIBLE の場合は機能します。
.invalidate() を使用しようとしましたが、機能しません。
誰でも私を助けることができますか?
よろしくお願いします。
android - getItemPosition から ViewPager のフラグメントを更新する
デザイン サポート ライブラリの新しい TabLayout を含む画面があります。フラグメントを表示するために使用される ViewPager もあります。このフラグメントは、選択されたタブに応じて異なるビューのリストを表示します。
アプリはネットワーク呼び出しへの応答を受け取ります。私のアクティビティは、ViewPager に属する FragmentPagerAdapter を、応答によって返されたデータで更新します。私の場合、これは 3 つのリストです。
私の ViewPager ではonPageChangeListener()
、ページが選択されたことを検出するために をオーバーライドしてから、新しいタブ位置で FragmentPagerAdapter を呼び出します。notifyDataSet()
ビューを再描画するためにも呼び出します。
getItemPosition()
Fragment に渡すリストを決定するメソッドをオーバーライドします。しかし、私はこれが正しい方法だとは思いませんgetItemPosition
。このメソッドは、実際には各フラグメントを同じ結果リストで更新しています。次のタブにスクロールすると、スクロールが解放されるまで現在のリストが次のタブに表示され、フラグメントは正しいリストで再描画されます。
私の質問は、ViewPager Fragments にリストを表示するための正しいアプローチをとっていますか? それとも、物事を真剣に複雑にしすぎていますか? 私は ViewPagers または FragmentPagerAdapters の経験があまりないので、どんな意見でも大歓迎です。
私のコードは以下の通りです。
フラグメントの追加 (から呼び出されるonResume()
)
ViewPager FragmentPagerAdapter クラス
android - タブレイアウトを無効にする
デザイン ライブラリによって提供される新しいクラス: TabLayout を使用しています。そして、私が使用している特定のケースでは、もうタブを変更できないようにしたいと考えています。
ビューページャーでスワイプを無効にできましたが、タブをクリックしてページの変更を無効にする方法がわかりません。
前もって感謝します。