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

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


2
フラグメントのデタッチと削除の違いは何ですか?
FragmentTransactionの Androidドキュメントで、2つの非常によく似たメソッドに気づきました:detachとremove。そこにある説明は、それぞれをいつ使用するかについての洞察を提供していないようであり、私が言うことができることから、それらは同じように見えます。 では、これら2つの方法の違いは何ですか?

9
フラグメントでのonCreateViewとonViewCreatedの違い
これら2つの方法の本質的な違いは何ですか?TextViewを作成するとき、パフォーマンスを向上させるためにどちらを使用する必要がありますか? 編集:との違いは何ですか onCreateView() { root = some view View v = new View(some context); root.add(v); return root; } onViewCreated() { View v = new View(some context); getView().add(v); }

3
Androidフラグメント:非表示/表示または追加/削除/置換を使用する場合
あるコンテナビューの現在のフラグメントを別のビューに置き換えたいとしましょう。置換を使用する方が良いですか... FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, newFragment, null); ft.commit(); ...または次のように、表示と非表示を切り替えますか? FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.hide(oldFragment); ft.show(newFragment); ft.commit(); これを行う1つの方法はより効率的ですか?これらのメソッドをいつ使用するか、またはそれらが関連するフラグメントのライフサイクルにどのように影響するかについての多くの情報を見つけることができません。ありがとう!

12
フラグメントのテーマを設定する
フラグメントのテーマを設定しようとしています。 マニフェストでテーマを設定しても機能しません。 android:theme="@android:style/Theme.Holo.Light" 以前のブログを見ると、ContextThemeWrapperを使用する必要があるように見えます。コード化された例を誰かに紹介してもらえますか?何も見つかりません。

5
サポートライブラリを使用しないAndroid 4.0、4.1(<4.2)でのネストされたフラグメントのベストプラクティス
私は4.0および4.1タブレット用のアプリを書いています。そのため、サポートライブラリ(必要でない場合)を使用したくないので、4.x APIのみを使用します。 だから私のターゲットプラットフォームは次のように非常によく定義されています:&gt; = 4.0および&lt;= 4.1 アプリにはマルチペインレイアウト(2つのフラグメント、左側に小さなフラグメント、右側に1つのコンテンツフラグメント)とタブ付きのアクションバーがあります。 これに似ています: アクションバーのタブをクリックすると、「外部」フラグメントが変更され、内部フラグメントは2つのネストされたフラグメントを持つフラグメントになります(1.小さな左リストフラグメント、2。幅の広いコンテンツフラグメント)。 今、フラグメント、特にネストされたフラグメントを置き換えるためのベストプラクティスは何なのかと思っています。ViewPagerはサポートライブラリの一部です。このクラスのネイティブ4.xの代替はありません。私の意味では「廃止された」ように見えます。- http://developer.android.com/reference/android/support/v4/view/ViewPager.html 次に、Android 4.2のリリースノートを読みますChildFragmentManager。これはに適していますが、4.0と4.1を対象にしているため、これも使用できません。 ChildFragmentManager 4.2でのみ利用可能です http://developer.android.com/about/versions/android-4.2.html#NestedFragments http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager() 残念ながら、Android開発者ガイド全体でさえ、サポートライブラリなしでフラグメントを使用するためのベストプラクティスを示す良い例はほとんどありません。特にネストされたフラグメントについては何もありません。 だから私は疑問に思っています:サポートライブラリとそれに付属するすべてのものを使用せずにネストされたフラグメントで4.1アプリを書くことは単に不可能ですか?(Fragmentなどの代わりにFragmentActivityを使用する必要がありますか?) または、ベストプラクティスは何ですか? 私が現在開発で抱えている問題は、まさにこの声明です: http://developer.android.com/about/versions/android-4.2.html#NestedFragments Android Support Libraryはネストされたフラグメントもサポートするようになり、ネストされたフラグメントデザインをAndroid 1.6以降で実装できます。 注:レイアウトにが含まれている場合、レイアウトをフラグメントにインフレートすることはできません&lt;fragment&gt;。ネストされたフラグメントは、フラグメントに動的に追加された場合にのみサポートされます。 ネストされたフラグメントをXMLで定義しているため、次のようなエラーが発生するようです。 Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_ …

6
BackStackでフラグメントアニメーションを逆にする方法は?
次のコードを使用してフラグメントを使用しているときに、戻るボタンが押されたときに、システムがバックスタックのアニメーションを反転させると思いました。 FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out); ft.replace(R.id.viewContainer, new class(), "layout").addToBackStack(null).commit();

13
PreferenceFragmentCompatでは、preferenceThemeを設定する必要があります
v7設定サポートライブラリの新しいPreferenceFragmentCompat:http : //developer.android.com/tools/support-library/features.html#v7-preferenceで、このエラーが発生します E java.lang.IllegalStateException: Must specify preferenceTheme in theme E at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:202) どのようなテーマを設定する必要がありますか? 更新:私は使ってみました &lt;item name="preferenceTheme"&gt;@style/PreferenceThemeOverlay&lt;/item&gt; @Bogatoで提案されているように、Lollipopでも正しく見えず、非常にHoloに見えます。 サポートライブラリ: ネイティブの設定:

13
onCreate()でビューにアクセスするNullPointerException
これは、StackOverflowに頻繁に投稿される問題に対する標準的な質問です。 チュートリアルに従っています。ウィザードを使用して新しいアクティビティを作成しました。私が手NullPointerExceptionにメソッドを呼び出すしようとしたときViewに得られたS findViewById()私の活動ではonCreate()。 活動onCreate(): @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View something = findViewById(R.id.something); something.setOnClickListener(new View.OnClickListener() { ... }); // NPE HERE if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } } レイアウトXML(fragment_main.xml): &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="packagename.MainActivity$PlaceholderFragment" &gt; &lt;View android:layout_width="100dp" android:layout_height="100dp" …

17
notifyDatasetChanged()の後にRecyclerViewが点滅する
APIから一部のデータを読み込み、画像のURLと一部のデータを含むRecyclerViewがあり、networkImageViewを使用して画像を遅延読み込みします。 @Override public void onResponse(List&lt;Item&gt; response) { mItems.clear(); for (Item item : response) { mItems.add(item); } mAdapter.notifyDataSetChanged(); mSwipeRefreshLayout.setRefreshing(false); } アダプターの実装は次のとおりです。 public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { if (isHeader(position)) { return; } // - get element from your dataset at this position // - replace the contents of the …


13
ViewPagerでタブを使用すると「Java.lang.IllegalStateExceptionアクティビティが破棄されました」というエラーが発生する
タブモードでActionBarSherlockを使用して構成されるアプリケーションがあります.5つのタブがあり、各タブのコンテンツはフラグメントを使用して処理されます。しかし、tab2の場合、フラグメントファイルがあり、そのxmlファイルにはViewPager要素が含まれており、ViewPager要素にはいくつかのフラグメントページがあります。最初にアプリケーションを起動したときに、問題なくタブを切り替えることができますが、2回目にtab2を押すと、上記のエラーが発生します。主な活動は次のとおりです。 public class MainActivity extends SherlockFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); ActionBar.Tab tab1 = actionBar.newTab().setText("Tab1"); ActionBar.Tab tab3 = actionBar.newTab().setText("Tab3"); ActionBar.Tab tab2 = actionBar.newTab().setText("Tab2"); ActionBar.Tab tab4 = actionBar.newTab().setText("Tab4"); ActionBar.Tab tab5 = actionBar.newTab().setText("Tab5"); Fragment fragment1 = new Tab1(); Fragment fragment3 = new Tab3(); Fragment …

14
リロード時にフラグメントを更新
Androidアプリケーションでは、DBからTableView内部にデータをロードしていますFragment。しかし、リロードするFragmentと、以前のデータが表示されます。Fragment以前のデータの代わりに現在のデータを再入力できますか?

16
フラグメント間で値を渡す方法
Fragmentsを使うのは初めてです。 私はフラグメントを使用する簡単なサンプルアプリケーションを構築しようとしています。私のシナリオは、2つのアクティビティがあり、各アクティビティ内に1つのフラグメントがあります。最初のフラグメントにはエディットテキストとボタンがあります。2番目のフラグメントにはテキストビューがあります。edittextに名前を入力してボタンをクリックすると、2番目のフラグメントのテキストビューには、最初のフラグメントのedittextに入力された名前が表示されます。 最初のフラグメントからそのアクティビティに、次にそのアクティビティから2番目のアクティビティに値を送信することができました。次に、2番目のフラグメント内でこの値をどのように使用しますか? これがJavaコードです::: package com.example.fragmentexample; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Fragment_1 extends Fragment{ OnFragmentChangedListener mCallback; // Container Activity must implement this interface public interface OnFragmentChangedListener { public void …

13
サポートFragmentPagerAdapterは古いフラグメントへの参照を保持します
最新の情報: 問題を、fragmentManagerが古いフラグメントのインスタンスを保持する問題と、viewpagerがFragmentManagerと同期していない問題に絞り込みました。この問題を参照してください... http://code.google.com/p/android/issues/detail?id=19211#makechanges。これを解決する方法はまだわかりません。助言がありますか... 私は長い間これをデバッグしようとしました、そしてどんな助けも大いに感謝されるでしょう。私はそのようなフラグメントのリストを受け入れるFragmentPagerAdapterを使用しています: List&lt;Fragment&gt; fragments = new Vector&lt;Fragment&gt;(); fragments.add(Fragment.instantiate(this, Fragment1.class.getName())); ... new PagerAdapter(getSupportFragmentManager(), fragments); 実装は標準です。フラグメントにActionBarSherlockとv4計算ライブラリを使用しています。 私の問題は、アプリを終了して他のいくつかのアプリケーションを開いて戻った後、フラグメントがFragmentActivity(つまりgetActivity() == null)への参照を失うことです。なぜこれが起こっているのか理解できません。手動で設定しようとしましたsetRetainInstance(true);が、これは役に立ちません。これはFragmentActivityが破棄されたときに発生すると考えましたが、ログメッセージが表示される前にアプリを開いた場合にも発生します。何かアイデアはありますか? @Override protected void onDestroy(){ Log.w(TAG, "DESTROYDESTROYDESTROYDESTROYDESTROYDESTROYDESTROY"); super.onDestroy(); } アダプター: public class PagerAdapter extends FragmentPagerAdapter { private List&lt;Fragment&gt; fragments; public PagerAdapter(FragmentManager fm, List&lt;Fragment&gt; fragments) { super(fm); this.fragments = fragments; } @Override public …

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