問題タブ [fragment-lifecycle]

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 に答える
524 参照

android - When can I use GoogleMap.getProjection().getVisibleRegion()?

I have to get GoogleMap.getProjection().getVisibleRegion().latLngBounds

But when app is started, its values are all zero.

I tried to get this at onViewCreated, onActivityCreated and onStart of SupportMapFragment, but it doesn't work. When I can do it? Is there any callback function that notifies when it is ready?Any help would be greatly appreciated.

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

android - デバイスをクリックして戻ると、Fragment のどのイベントが呼び出されますか?

次のように、別のフラグメント A の上にフラグメント B を追加しています。

問題は、デバイスを B に戻すときに、A にアンカーが必要なことです。この場合、どのライフサイクル メソッドが呼び出されるのでしょうか?

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

android - 機能を自動起動する方法 Fragment Lifecycle

アクティビティに別のフラグメントを添付するアプリケーションがあります。そのアクティビティコンテナで、別のフラグメントを置き換えています。

そのため、アクティビティの開始時に、アクティビティ コンテナー内の MapFragment を置き換えます。後で他のフラグメントを置き換え、メイン アクティビティから再びマップ フラグメントを置き換えます。私はフラグメント内のマップの実装が間違っていると思いますが、知りたいと思っていて、いくつかの異なることをしたかったのですが、フラグメントをよく理解していないと思うので、ヌルポインター例外が発生していると思います

私が今までやってきたこと

ケース1. 私が言ったように、アプリの開始時にマップフラグメントを置き換えていますが、Googleマップv2でユーザーの場所を有効に設定するだけで、ユーザーの現在の場所を表示する以外は何もしていません。マップのボタンをクリックすると、他の場所を表示したり、サーバーから位置情報を取得したり、マップ上にピンを描画したりできます。マップ フラグメントが存在する限り、これはうまく機能しています。

ケース2

ユーザーがボタンをクリックした場合、コンテナに他のフラグメントがあるときに「場所を表示」と言うと、アプリ情報を含むAbout Usフラグメントと言うので、このボタンでは、マップフラグメントを再度置き換えてから、そのフラグメントの関数を置き換える必要があると想定されますサーバーから場所をダウンロードし、それらを地図上に表示するために、ボタンのクリックで呼び出しているときに動作を開始する必要があります

したがって、この GetLocations() を実行する必要がありますが、この段階でアプリがクラッシュし、null ポインター例外が発生します。この関数 myMapFragment.GetAllLocations("friendsLocation") には、getActivity() として取得するコンテキストが必要です。コンテキストが必要な ION ライブラリを使用して Web API を呼び出す必要があるため、コンテキストが必要です。

これらは私の基本的な質問です

  1. getActivity() で null コンテキストを取得できないように、フラグメントが開始されたことを知るにはどうすればよいですか?

    1. それを行う他の方法はありますか、私の必要性を理解していただければ幸いです。つまり、マップフラグメントを置き換えたいのと同時に、メインアクティビティからフラグメントメソッドにパラメーターを渡すことでフラグメントメソッドを呼び出したいのですが、どうすればできますか?

    2. アイデアは私の頭の中にあり、Mainactivity ボタンを使用してマップ フラグメントを元に戻すときに、mapFragment に静的な値を設定する必要があります。

public static boolean isLocationShouldDownload== flase //マップ フラグメント内

フラグメントの置換中に true に設定し、フラグメントが実行状態になった後にフラグメントが開始されたときに、この変数が true (メイン アクティビティによって設定) であるかどうかをチェックし、ダウンロードしてピンのプロットを開始する必要があります。しかし、フラグメントが実行されていることをどのように知ることができるかわかりません。

ポイント3で述べたアイデアをどこでどのように実装する必要があるのか​​ わかりません。

あなたのアイデアを私と共有し、フラグメントが場所を置き換えてダウンロードし、アプリがクラッシュすることなく地図上に表示する必要がある主なアクティビティを通じて、このタスクをどのように達成できるかについての提案をするか、ソースコードを共有してください。

0 投票する
2 に答える
140 参照

android - onCreate() は commit() の後に呼び出されますか?



私のアプリは引き出し付きのデモです.8つの惑星の引き出しナビゲーションのデモListView.引き出しのショーのアイテムをクリックすると、フラグメントの惑星の絵が変わります.

ここに私の混乱があります:

「 」へのサブシーケンスという意志の方法onCreateonCreateView方法だと思います。FragmentfragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();

しかし、実際には、彼らはonItemClick()終わった後に電話をかけました。なんで?前もって感謝します。

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

android - 状態が保存された Fragment Master-Detail

アクティビティには、オブジェクトのリストを含むフラグメントがあります。このフラグメントは、リスト項目の詳細を含む別のフラグメントに置き換える必要があります。詳細フラグメントがアクティブで、戻るボタンが押された場合、リストフラグメントを再開する必要があります。

私のコード:

私が観察するもの:

したがって、戻るボタンが押されると、onResume関数のみが呼び出されることが期待されます。実際、それはフラグメントのライフサイクルでどのように説明されているかです。しかし、私が観察したように、oncreateView()も呼び出されます。これにより、フラグメントが完全にリロードされますが、これは望ましい動作ではありません。では、マスター フラグメントを適切に再開するにはどうすればよいでしょうか。

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

android - onPause から再開すると、TextureView でビデオを再生するとクラッシュする

アクティビティを一時停止すると、戻ったときにクラッシュします

ビデオが中断したところに正確に戻り、そこから続行できるようにしたい. また、現在行っていないオリエンテーションにも耐えられるようにしたいと考えています。これを達成する方法についてのヒントをありがとう。API-16にぶつかって一部のユーザーを失うのではなく、API 14を使い続けたいので、私はExoPlayerを使用していません。

私のセットアップはActivity -> Fragment {TextureView}. 縦向きでは、フラグメントは画面の半分です。ランドスケープでは、フラグメントはフルスクリーンです。

コードスニペット

playVideoNow()BroadcastReceiverなどの複数の可能な場所から呼び出されるonResumeため、すべてが正常であるかどうかを確認します。また、

0 投票する
2 に答える
57 参照

android - 親アクティビティ バンドルにフラグメントに渡されるオブジェクトが常に含まれている場合、フラグメント バンドルの目的は何ですか?

アクティビティ内にモデルがあり、このアクティビティ内のフラグメントがそれにアクセスする必要があります。現在、Fragment バンドルを介して渡していますが、フラグメント内のアクティビティからアクセスできないのはなぜですか?

たとえば、フラグメント onCreate() 内で次のコードを使用します。

Model model = ((ActivityWithModel) getActivity).getModel();

一般に、アクティビティとフラグメントがオブジェクトを共有する方法、またはアクティビティがパラメーターをフラグメントに渡す方法を常にこれにできないのはなぜですか? なぜ Fragment バンドルが必要なのですか?