問題タブ [fragmentpageradapter]

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.

0 投票する
1 に答える
1907 参照

android - FragmentPagerAdapter で左側にタブを追加する

これは、タブに関する最後の質問になります。約束します:) (多分)以前の質問と試行錯誤から、いくつかのタブを作成し、新しいタブを動的に作成する機能を提供する PagerAdapter と呼ばれる FragmentPagerAdapter があります。問題は、新しいタブが常に既存のタブの右側に挿入されることです:

(写真:http://s7.directupload.net/file/d/3198/73dyzvzv_png.htm

私は次のことを試しました:

  1. タブの最初のセットを作成するときにスキップされる「null」の静的エントリを追加します。その後、「一時タブ」を作成するときに、そのエントリを必要なフラグメントにオーバーライドできました。奇妙な IllegalSTateException が発生しました...

  2. 私が最高にうまくいくと思っていたものと、実際には本当にうまくいかなかったこと: フラグメントを追加する代わりに:

    /li>

使用する

しかし、次のメッセージとともに IllegalStateException が発生します。

一時フラグメントを追加しようとすると。さて、2つの質問:

  1. そのフラグメント タブを回避する方法はありますか? すべてのフラグメント タグを一時的に削除して、すべてまたは何かを再構築できますか? または

  2. これを行うためのはるかに優れたエレガントな方法はありますか? それとも、タブを右側で使用できるように UI を再設計する必要がありますか? :P

編集:ここにいくつかのコード:(人々を怖がらせる可能性があるため、死の壁を人々に投稿したくありません:o)

FragmentPagerAdapter:

メインアクティビティ:

スタックトレース:

0 投票する
5 に答える
19931 参照

android - FragmentPagerAdapter getItem がトリガーされていません

現在、 をFragmentActivity使用して、次のコードを使用して 2 種類のフラグメントを切り替えます。

2 つのフラグメントがトグルされています。

  • ColorFragment - 背景を黒色で塗りつぶす単純なフラグメント。
  • ViewPagerFragment - フラグメントには が含まれていますViewPager。ユーザーは、紫色のフラグメントと青色のフラグメントの間をスワイプできます。

紫と青の色の断片をスワイプするコードは次のとおりです。

ただし、トグル中に奇妙な動作に遭遇します。

  1. 黒い色の断片が表示されました。
  2. トグル。
  3. ページャーを表示します。表示されている紫と青のフラグメントの間をスワイプできます。
  4. トグル。
  5. 黒い色の断片が表示されました。
  6. トグル。
  7. MyFragmentPagerAdapter の getItem がトリガーされていないため、何も表示されません。

私の状況はFragmentPagerAdapter getItem が呼び出されていないに似ていると思います

ただし、ページを切り替えるときにオーバーヘッドが増える可能性があるFragmentStatePagerAdapterため、を使用しないことを好みます。

この問題を克服するための回避策はありますか?

この問題を示すために、完全に実行可能なソース コードを含めます: https://www.dropbox.com/s/jok9tz5ktvfcteo/viewpagerbug.zip

0 投票する
1 に答える
7454 参照

android - ページを削除して FragmentPagerAdapter に追加する

5 ページのフラグメント ページャー アダプターを使用しています。そして、以下のようにページャーを表示するようにアダプターを設定しています

フラグメントでは、以下のようにページごとに個別に線形レイアウトを作成します

そして、アダプターを以下のように設定しています

私の質問は、5 番目のページを動的に追加および削除する方法です...たとえば、5 ページが必要な場合と、5 ページを削除する必要がある場合があります。

0 投票する
1 に答える
232 参照

android - FragmentPageAdapter の癖とクラッシュ

私は Android 開発にかなり慣れていないので、基本的な UI のほとんどを処理する方法を学ぶために単純なプロジェクトから始めました。

私は ActionBarSherlock と ViewPageIndicator を使用しました。作成した単純なアプリは全体的に機能していますが、まだ奇妙な問題がいくつかあります。説明しましょう:

  • FragmentPageAdapter を使用してフラグメントをその場所に移動するボタンをクリックすると、トランザクションに割り当てたトランジション効果が発生しません。戻って(トランザクションがスタックに追加されて)ボタンをもう一度押した場合にのみ発生します。
  • ボタンをクリックした後に戻ってもう一度クリックすると、フラグメントが表示されますが、奇妙な動作をし、あらゆる種類の奇妙なことを行います。空白だけで、タイトルも)
  • ボタンをクリックしてからデバイスの向きを変更すると、アプリがクラッシュします - デバッグしようとしましたが、Android フレームワーク内のコードに到達しました。

コードのどこかで本当に間違っていたので、これらすべての問題が発生していると思います。私の問題を理解するのを手伝ってください。できれば、何が間違っていたのかを読んで理解できない良い実践や場所を教えてください。

問題のコードをここにアップロードしました: https://code.google.com/p/mich-android-testapp/source/browse/trunk/TestApp/

皆さんからの助けに感謝します!

0 投票する
1 に答える
359 参照

fragment - Android PagerAdapter、手動で膨張したフラグメントを追加する際の問題

FragmentPagerAdapter を使用して、MyFrag タイプのいくつかのタブ (フラグメントに関連付けられている) を表示しています。MyFrag.onCreateView() 内で、いくつかの内部フラグメント (MyInternalF1 と MyInternalF2) をプログラムでインフレートします。

私が得るのは、ぎこちない表示結果です。外部の MyFrag インスタンスは問題なく、タブに関連付けられています。しかし、内部フラグメントは間違ったフラグメント内に埋め込まれています...最初の MyFrag には独自の内部フラグメントが含まれていますが、2 番目、3 番目などの MyFrag には内部フラグメントがないか、他のフラグメントの内部フラグメントをホストしています。(内部フラグメントは問題なく動作します。ランダムなフラグメントに配置されているだけです)。

v13 サンプルのタブ/ページャー サンプル ウィジェットを使用しています: samples/Support13Demos/src/com/example/android/supportv13/app/FragmentPagerSupport.java

擬似コード:

0 投票する
1 に答える
13780 参照

android - FragmentPagerAdapter で現在のフラグメントを更新する

タブインジケーター付きのviewPagerがあります。ViewPager は、FragmentPagerAdapter を持つ setAdaper です。

FragmentPagerAdapter の内部がどのように機能するかはほとんどわかりません。隣接フラグメントがまだ表示されていないにもかかわらず、隣接フラグメントが再開されている ( OnResume が呼び出されている) ことに気付きました。

フラグメントが最新になると更新されると考えて、更新メソッドを OnResume に入れました。

広告バナーの更新
フッターに設定した広告バナーを、左に1回スワイプまたは右に1回スワイプすると更新されるようにしたい。隣接フラグメントは再作成されません (良いことです)。ただし、onResume はすでに呼び出されており、バナーの更新を回避しています。メソッド loadBannerAd は OnResume() メソッドにあります。



フラグメント内のメソッドによって、現在のフラグメントに対してのみメソッド loadBannerAd() を呼び出すにはどうすればよいですか?

編集: mViewPager.setOnPageChangeListener() についてはすでに知っています。

ただし、フラグメントがまだ作成されていない場合は危険です。アクティビティでフラグメントが作成されたかどうかを管理すると、フラグメントの純粋なポーズが無効になります。

ここに画像の説明を入力

0 投票する
0 に答える
1428 参照

android - フラグメントの垂直スライド

Androidでフラグメントを垂直にスライドさせる方法はありますか? 私は何かのようなものを意味FragmentPagerAdapterしますが、垂直モードです。PDFリーダーのような垂直スライドページを備えたテキストビューアを作成するには、これが必要です。