タグ付けされた質問 「android-fragments」

フラグメントは、Androidアプリの再利用可能な動作またはユーザーインターフェースの一部を表します。

4
アクティビティ/フラグメントが一時停止しているときにハンドラーメッセージを処理する方法
私の他の投稿のわずかな変化 基本的に私がメッセージを持ってHandler、私の中Fragmentのダイアログにつながることができ、メッセージの束を受け取り、却下または示されています。 アプリがバックグラウンドに置かれるとonPause、メッセージが表示されますが、期待どおりにメッセージが届きます。ただし、フラグメントを使用しているため、ダイアログが表示されなくなり、結果がになるため、ダイアログを表示することはできませんIllegalStateException。 状態の損失を許可することを却下またはキャンセルすることはできません。 私が持っていることを考えるとHandler、私は私がしばらく一時停止状態でメッセージをどのように処理するかのように推奨されるアプローチがあるかどうかを疑問に思っています。 私が考えている解決策の1つは、一時停止中に届いたメッセージを録音し、で再生することonResumeです。これはやや不十分で、これをよりエレガントに処理するためにフレームワークに何かがあるに違いないと私は考えています。

13
FragmentPagerAdapterを使用したViewPagerのフラグメントは、2回目に表示されたときに空白になります
メインビューでさまざまなフラグメントを開く下部にタブがあるフラグメントインターフェイスがあります。 アイテムのリストである特定のフラグメントがあります。ユーザーがこのリストの項目の1つを選択すると、前のフラグメントのリストのすべての項目間を水平方向にスクロールするビューページャーを含む別のフラグメントが開きます。これはうまくいきます。 ビューページャーは、FragmentPagerAdapterを使用してアイテムを表示します。 問題は、ユーザーがリスト内のアイテムを選択して表示し、タブバーのボタンを押してリストに戻り、別のアイテムを選択したときに発生します。2回目にアイテムを選択すると、ビューページャーの代わりに空白の画面が表示されます。これが発生しても、LogCatにエラーは表示されません。 ビューページャーが初めてしか表示されないのはなぜですか? FragmentPagerAdapter: public class ViewPagerAdapter extends FragmentPagerAdapter { Cursor mCursor; public ViewPagerAdapter(FragmentManager fm, Cursor c) { super(fm); mCursor = c; } public void changeCursor(Cursor c) { mCursor = c; this.notifyDataSetChanged(); } @Override public int getCount() { if (mCursor == null) return 0; else return mCursor.getCount(); } …

10
Androidでフラグメントを非表示にする
2つのフラグメントを含むアプリケーションを開発しています。必要に応じて非表示にしたいと思います。次のコードは私の問題の簡単な例です。この単純なFragmentactivityには、1つのボタンと1つのリストフラグメントが含まれています。 この簡単な例は完璧に機能します。しかし、私はフラグメントの非表示に満足していません。layout.setVisibility(View.GONE);を削除すると、コードからft.hide(f); フラグメントを非表示にしません。実際、私たちはコンテナを隠しているフラグメントを隠していません。 私の質問は、これは非表示のフラグメントを表示する方法ですか?そうでない場合は、テスト済みの例で説明してください。多くの人がこの問題に直面しているため、フラグメントを非表示および表示する方法を説明してください。 public class MainActivity extends FragmentActivity implements OnClickListener { Fragment1 f; Button b; LinearLayout layout; Fragment myf; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b = (Button) findViewById(R.id.button1); layout = (LinearLayout) findViewById(R.id.ll); f = new Fragment1(); } @Override public void onClick(View v) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); …

10
カスタムDialogFragmentをFragment上で透明にすることはできません
(画面全体を占める)フラグメント上にダイアログを作成する必要があります。ダイアログは、フラグメントがフラグメントの外側で暗くなった状態でフラ​​グメントの上に配置されるフローティングダイアログである必要があります。 カスタムダイアログの場合、カーブしたエッジを持つlinearLayoutがあります。何をしても、ダイアログにはすべての側面に黒い境界線があります(非常に小さい)。私はそれを透明にし、消えるようにあらゆることを試みました(そのため、ダイアログのすべてが単なる直線レイアウト-曲線ボックスになるように) DialogFragmentの場合、これはonCreateViewに必要なものです @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ LinearLayout layout =(LinearLayout)inflater.inflate(R.layout.custom_dialog, null); LinearLayout item = (LinearLayout)layout.findViewById(R.id.display_item); populateItemData(item, inflater); return layout; } custom_dialogは、android:backgroungが#000000に設定された単なるLinearLayoutです これはカスタムダイアログの私のスタイルです <style name="CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:alwaysDrawnWithCache">false</item> <item name="android:windowContentOverlay">@null</item> </style> (オンラインで見たものから)このスタイルであらゆる種類の組み合わせを試しましたが、迷惑な黒い境界線を取り除くことができません.LinearLayoutの背景を以外の値に設定すると、白または他の色にペイントできます#000000 ... 私はこれに文字通り3〜4時間費やしました。他の誰かが手伝ってくれることを願っています...

14
BottomSheetDialogFragmentの状態を展開に設定します
Android Support Design Library(v23.2.1)BottomSheetDialogFragmentをBottomSheetBehavior#setState(STATE_EXPANDED)使用して、拡張されたフラグメントの状態をどのように設定しますか? https://code.google.com/p/android/issues/detail?id=202396のコメント: 下部のシートは、最初はSTATE_COLLAPSEDに設定されています。拡張する場合は、BottomSheetBehavior#setState(STATE_EXPANDED)を呼び出します。ビューレイアウトの前にメソッドを呼び出すことはできないことに注意してください。 提案の練習は(最初に膨張するビューが必要ですが、私は私がフラグメントにBottomSheetBehaviourを設定しますかどうかはわかりませんBottomSheetDialogFragment)。 View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);

17
DialogFragmentの幅をFill_Parentにする方法
私はDialogFragmentダイアログを表示するために使用しているAndroidアプリケーションに取り組んでいますが、その幅は非常に小さいです。どのようにしてこの幅fill_parentをそれに合わせることができますか? public class AddNoteDialogFragment extends DialogFragment { public AddNoteDialogFragment() { // Empty constructor required for DialogFragment } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getString(R.string.app_name)); View view = inflater.inflate(R.layout.fragment_add_note_dialog, container); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); // request a window …

3
フラグメントまたはアクティビティのツールバーを使用したコーディネーターレイアウト
新しいデザインライブラリには、開発者の希望に応じてツールバーの動作を大きく変えるいくつかの新しいレイアウトがあります。フラグメントによって動作や目的が異なるため、たとえば、重要な写真を表示する折りたたみツールバーのあるギャラリーフラグメントや、ツールバーを非表示にするためにappbarlayoutを必要としないscrollviewのないフラグメントの場合、アクティビティに単一のツールバーがあると、難しいことを証明します。 これで、ツールバーを各フラグメントに移動する必要がありますか?その場合、フラグメントを表示するたびにsupportActionBarを設定する必要があり、フラグメントの独立した性質を無効にするフラグメント内のアクティビティの参照も必要です。ツールバーをアクティビティに残したままにすると、各フラグメントの動作のタイプごとに複数のレイアウトを定義する必要があります。最善のアプローチは何でしょうか?

12
バックスタックからのフラグメントonResume
Android 2.2でフラグメントを使用するために互換性パッケージを使用しています。フラグメントを使用し、それらの間にトランジションをバックスタックに追加するとき、アクティビティのonResumeと同じ動作を達成したい、つまり、フラグメントが「フォアグラウンド」(ユーザーから見える)にされた後バックスタック、フラグメント内で(たとえば、共有されたUIリソースで特定の変更を実行するために)ある種のコールバックをアクティブ化したいのですが。 フラグメントフレームワーク内にコールバックが組み込まれていないことがわかりました。これを達成するための良い習慣はありますか?

3
nullパラメータを持つaddToBackStackの意味は何ですか?
顧客コードを持っています。すべてのフラグメントに対して1つのアクティビティしかありません。つまり、単一のアクティビティがすべてのフラグメントを管理しています。 このアクティビティには、フラグメントのメソッドの最後にあるフラグメントの次のコードが含まれています 例えば-MoreFragmentのフラグメント: MoreFragment firstFragment = new MoreFragment(); getSupportFragmentManager().beginTransaction() .replace(R.id.article_fragment, firstFragment) .addToBackStack(null).commit(); そう、 1)にaddToBackStack(null)続くの意味は何commit()ですか? 2)nullパラメータを渡す必要があるのはなぜaddToBackStackですか? 3)このように追加された後にそのフラグメントを取得するにはどうすればよいですか? 私は最後の行なしでコードを実行し、.addToBackStack(null).commit()問題なく実行されたので、このコードは役に立たないようです。

9
フラグメントで権限を確認する方法
フラグメント内の権限を確認したい。 私のコード: // Here, thisActivity is the current activity if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION)) { // Show an explanation to the user *asynchronously* -- don't block // this thread waiting for the user's response! After the user // sees the …

7
ActionBarに表示されるメニュー項目を更新する方法は?
2つのフラグメントを持つアクティビティがあります。どちらもListFragmentsであり、MenuItemsをMenuに提供します。ActionBarのボタンとして表示するためにandroid:showAsAction属性を設定した1つのMenuItemがあります。うまくいきます。 現在、MenuItemは状態に依存しています。これは、キューを一時停止および再開するための一時停止/再開メニューオプションです。私の問題は、フラグメントが作成されたときの初期像の設定方法がわからないことです。 その状態は、キューが一時停止されているかどうかによって異なります。したがって、キューを取得し、キューの状態に基づいてブール値(一時停止)を設定するAsyncTaskがあります。onPrepareOptionsMenuを呼び出して、キューの最後の既知の状態に基づいて一時停止メニュー項目のテキストを設定します。これは、実際のメニューにMenuItemを残しておくとうまく機能します。メニューアイコンをタップすると、onPrepareOptionsMenuが起動し、メニューが表示される前に更新されます。 問題は、同じMenuItemをActionBar(showAsAction)に配置した場合、onPrepareOptionsMenuを呼び出さずに強制的に更新する方法です。アプリを初めて起動したときに、キューを取得するリクエストを送信しましたが、ActionBarがセットアップされて表示された後にタスクが戻るため、これを実行できるようにする必要があります。キューの更新を取得するたびに呼び出されるハンドラーをフラグメントに作成しましたが、そこから、ActionBarのMenuItemのテキストをどのように更新できますか?onPrepareOptionMenuを除いて、現在設定されているメニューを操作する方法を見つけることができないようです。 ロブ・W

9
ポイントから成長するアニメーションでDialogFragmentを表示する
私はAを示していますDialogFragmentユーザーが行をタップしたときListView。行の中央から成長するようにダイアログの表示をアニメーション化したいと思います。ランチャーからフォルダーを開くと、同様の効果が見られます。 私が持っていたひとつのアイデアは、の組み合わせですTranslateAnimationとScaleAnimation。別の方法はありますか?

8
PreferenceFragment内の設定変更をリッスンする方法は?
ここで説明するように、PreferenceFragmentをサブクラス化して、アクティビティ内に表示しています。このドキュメントでは、ここで設定の変更をリッスンする方法について説明していますが、PreferenceActivityをサブクラス化する場合のみです。私はそれをしていないので、どのようにプリファレンスの変更をリッスンしますか? 私はPreferenceFragmentにOnSharedPreferenceChangeListenerを実装しようとしましたが、機能していないようです(呼び出されていないようですonSharedPreferenceChanged)。 これはこれまでのところ私のコードです: SettingsActivity.java public class SettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Display the fragment as the main content. getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); } } SettingsFragment.java public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener { public static final String KEY_PREF_EXERCISES = "pref_number_of_exercises"; @Override public void onCreate(Bundle …

10
結果の開始フラグメントのように機能するメソッドはありますか?
現在、オーバーレイにフラグメントがあります。これはサービスにサインインするためのものです。電話アプリでは、オーバーレイに表示したいステップはそれぞれ独自の画面とアクティビティです。サインインプロセスには3つの部分があり、それぞれにstartActivityForResult()で呼び出される独自のアクティビティがありました。 次に、フラグメントとオーバーレイを使用して同じことを行います。オーバーレイには、各アクティビティに対応するフラグメントが表示されます。問題は、これらのフラグメントがHoneycomb APIのアクティビティでホストされていることです。最初のフラグメントを機能させることはできますが、startActivityForResult()を実行する必要がありますが、これは不可能です。startFragmentForResult()の行に沿って、新しいフラグメントを開始できる何かがあり、それが完了すると、前のフラグメントに結果を返しますか?

7
フラグメントからアクティビティを開始する
2つのフラグメントがあり、両方のフラグメントにボタンがあります。ボタンを押すと、新しいアクティビティを開始したいと思います。しかし、私はそれを機能させることができません。 私が得ているエラー:ここでのエラー:タイプの不一致:mFragmentFavoriteからFragmentに変換できません 私は何が間違っているのですか? MyFragmentPagerAdapter import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class MyFragmentPagerAdapter extends FragmentPagerAdapter{ final int PAGE_COUNT = 3; /** Constructor of the class */ public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } /** This method will be invoked when a page is requested to create */ @Override public Fragment getItem(int …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.