同じAndroidフラグメントを2回表示し、getByIdコールを使用する

したがって、ユーザーが Samsung Galaxy Tabのような十分な画面の画面を持つデバイスを使用している場合、2つのフラグメントが表示されます。

今はフラグメントリストを2回(同じフラグメントを2回)表示しています。フラグメントのコードの中で、私はこれを使ってプログレスバーを隠します。

ProgressBar pb = (ProgressBar)getActivity().findViewById(R.id.progress);
pb.setVisibility(View.GONE);

問題は、それがフラグメントの1つでしか機能しないことです。どちらも同じ断片なので同じIDを持っていますか? 2つの同一のフラグメントを作成するか、正しいフラグメントに「正しい」プログレスバーを見つけることが可能ですか?

0
nl ru de

1 答え

アクティビティのビュー階層内のビュー( ProgressBar )を見つける代わりに、フラグメントのビュー階層でそのビューを見つけます。断片の中で、以下を実行してください:

ProgressBar pb = (ProgressBar) getView().findViewById(R.id.progress);

通常、親のビュー階層でルックアップを行いたくないので、上記は基本的にフラグメントのレイアウト内のすべてのビューに適用されます。

2
追加された
現在のビューだけを返すgetView()メソッドについて知りませんでした。魅力のように働いた、ありがとう。
追加された 著者 Patrick,