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

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

5
フラグメント内のonCreateOptionsMenu
setHasOptionsMenu(true)内部onCreateViewに配置しましたが、onCreateOptionsMenuフラグメントの内部を呼び出すことはできません。 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); return inflater.inflate(R.layout.facesheet, container, false); } 以下は私のonCreateOptionsMenuコードです。 @Override public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { getSupportMenuInflater().inflate(R.menu.layout, menu); return (super.onCreateOptionsMenu(menu)); } 私が得るエラーメッセージ: onCreateOptionsMenu(Menu)タイプFragment のメソッドは、スーパータイプメソッドをオーバーライドまたは実装する必要があります。

3
ViewPagerを使用したAndroid.app Fragments対android.support.v4.app?
Androidサポートライブラリ、フラグメント、具体的な例としてViewPagerクラスについて質問があります。私の意図は、Androidデベロッパーウェブサイト(http://developer.android.com/training/animation/screen-slide.htmlまたはhttp://developer.android.com/)で提供されているサンプルと同様の機能を備えたアプリを作成することです。training / implementing-navigation / lateral.html)。彼らのコードを見ると、彼らがandroid.support.v4.appライブラリを利用していることに気づきました。これは、私の研究から、ViewPagerクラスにアクセスする唯一の方法です。 私の状況では、下位互換性には関心がありません。最小APIレベルは14(Ice Cream Sandwich)で、ビルドターゲットは4.2 Jelly Beanです。最も単純な形式では、私のアプリは、Android開発Webサイトでリンクした2番目のデモとまったく同じように機能します。それぞれのコンテンツを含む3つのタブ間をスワイプするだけです。 私が読んだすべての記事/投稿/回答は、v4サポートライブラリを非常に支持しているようです。さて、私にとって、長い間ですが、質問: 私のアプリケーションを構造化するための最良の方法は何ですか-を使用しandroid.support.v4.app、それによってSupportFragmentsを使用するか、またはで提供されるFragmentsを使用しますandroid.app-その理由は? からの断片android.appが行く方法である場合、アプローチする最適な方法は何ViewPagersですか? SupportFragmentsがタスクに最適である場合、それらが他の機能と同じ機能を持っていると私は推定します-それで、それらをすべて内部に持つ目的は何android.appですか? うまくいけば、より明確な理解を持った誰かが私を少し説明してくれます。

13
フラグメントでデータバインディングを使用する方法
私は公式のGoogleドキュメントhttps://developer.android.com/tools/data-binding/guide.htmlからのデータバインディングの例に従っています アクティビティではなくフラグメントにデータ入札を適用しようとしていることを除いて。 コンパイル時に私が現在得ているエラーは Error:(37, 27) No resource type specified (at 'text' with value '@{marsdata.martianSols}. onCreate フラグメントは次のようになります: @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); MartianDataBinding binding = MartianDataBinding.inflate(getActivity().getLayoutInflater()); binding.setMarsdata(this); } onCreateView フラグメントは次のようになります: @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.martian_data, container, false); } …

18
RecyclerViewでWRAP_CONTENTを機能させる方法
私が持っているDialogFragment含まれているRecyclerView(カードのリスト)。 この中にRecyclerViewはCardViews、任意の高さを持つことができる1つ以上があります。 私はこれに含まれるにDialogFragment基づいて正しい高さを与えたいですCardViews。 通常これは簡単です、私はこのように設定wrap_contentしRecyclerViewます。 <android.support.v7.widget.RecyclerView ... xmlns:tools="http://schemas.android.com/tools" android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:scrollbars="vertical" > </android.support.v7.widget.RecyclerView> 私が使用しているのでRecyclerViewこれは機能しません: https://issuetracker.google.com/issues/37001674 そして ネストされたリサイクラービューの高さはコンテンツをラップしません これらのページの両方で、人々は拡張LinearLayoutManagerしてオーバーライドすることを提案しますonMeasure() 私は最初に誰かが最初のリンクで提供したLayoutManagerを使用しました: public static class WrappingLayoutManager extends LinearLayoutManager { public WrappingLayoutManager(Context context) { super(context); } private int[] mMeasuredDimension = new int[2]; @Override public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) …

12
フラグメントを使用する場合のAndroid Navigation Drawer画像とアップキャレットの切り替え
Navigation Drawerを使用する場合、Android開発者は、ActionBarで「Navigation Drawerで表される画面のみに実際にNavigation Drawer画像を表示する」ことと、「他のすべての画面に従来のアップカラットを設定する」ことを推奨しています。 詳細はこちらをご覧ください:http : //youtu.be/F5COhlbpIbY 1つのアクティビティを使用して複数のレベルのフラグメントを制御し、ナビゲーションドロワーの画像を取得してすべてのレベルで機能させることができます。 下位レベルのフラグメントを作成するときに、ActionBarDrawerToggle setDrawerIndicatorEnabled(false)を呼び出してナビゲーションドロワーイメージを非表示にし、上向きキャレットを表示することができます LowerLevelFragment lowFrag = new LowerLevelFragment(); //disable the toggle menu and show up carat theDrawerToggle.setDrawerIndicatorEnabled(false); getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout, lowFrag, "lowerFrag").addToBackStack(null).commit(); 私が抱えている問題は、元のナビゲーションドロワーイメージの代わりに、アップカラットが表示している最上位のフラグメントに戻ってナビゲートするときです。ナビゲーションドロワーの画像を再表示するために、トップレベルのフラグメントのActionBarを「更新」する方法に関する提案はありますか? 解決 トムの提案は私のために働いた。これが私がしたことです: 主な活動 このアクティビティは、アプリ内のすべてのフラグメントを制御します。 新しいフラグメントを準備して他のフラグメントを置き換えるとき、DrawerToggleを次のsetDrawerIndicatorEnabled(false)ように設定します。 LowerLevelFragment lowFrag = new LowerLevelFragment(); //disable the toggle menu and show up carat theDrawerToggle.setDrawerIndicatorEnabled(false); getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout, lowFrag).addToBackStack(null).commit(); 次に、のオーバーライドでonBackPressed、DrawerToggleを次のsetDrawerIndicatorEnabled(true)ように設定して上記を元に戻しました。 …

13
フラグメントとそのコンテナアクティビティの間でデータを受け渡す
フラグメントとそのコンテナアクティビティの間でデータを渡すにはどうすればよいですか?インテントを介してアクティビティ間でデータを渡すことに似たものはありますか? 私はこれを読みましたが、あまり役に立ちませんでした:http : //developer.android.com/guide/topics/fundamentals/fragments.html#CommunicatingWithActivity


16
現在のフラグメントオブジェクトを取得する
私のmain.xml中で <FrameLayout android:id="@+id/frameTitle" android:padding="5dp" android:layout_height="wrap_content" android:layout_width="fill_parent" android:background="@drawable/title_bg"> <fragment android:name="com.fragment.TitleFragment" android:id="@+id/fragmentTag" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </FrameLayout> そして、私はこのようにフラグメントオブジェクトを設定しています FragmentManager fragmentManager = activity.getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); Fragment newFragment = new FragmentType1(); fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag"); // fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); 異なるタイプのFragmentオブジェクト(FragmentType2,FragmentType3,...)を異なる時間に設定しています。ある時点で、現在そこにあるオブジェクトを特定する必要があります。 で短い私はこのような何かをする必要があります。 Fragment currentFragment = //what is the way to get current fragment object in FrameLayout …

6
フラグメントのデフォルト以外のコンストラクターを避けたいのはなぜですか?
私はFragmentsそれらの1つでデフォルト以外のコンストラクタを作成してこの警告を得たアプリを作成しています: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead なぜこれが良い考えではないのか誰かに教えてもらえますか? 私がこれを達成する方法を提案することもできます: public static class MenuFragment extends ListFragment { public ListView listView1; Categories category; //this is my "non-default" constructor public MenuFragment(Categories category){ this.category = category; }.... デフォルト以外のコンストラクタを使用せずに?

26
DialogFragmentの幅と高さを設定するには?
私はDialogFragmentのレイアウトをxmlレイアウトファイルで指定し(これをと呼びましょうlayout_mydialogfragment.xml)、特にその属性layout_widthとlayout_height属性を指定します(100dpそれぞれ言いましょう)。次に、このレイアウトをDialogFragmentのonCreateView(...)メソッドで次のように膨らませます。 View view = inflater.inflate(R.layout.layout_mydialogfragment, container, false); 残念ながら、私は私のダイアログ(DialogFragment)が表示されたら、それは尊重していないことが判明layout_widthし、layout_heightそのXMLレイアウトファイルで指定された(と私の対話収縮または可変含有量に応じて膨張します)。私は尊重する私のダイアログを得ることができるかどうか、またはどのように誰もが知っているlayout_widthと、layout_heightそのXMLレイアウトファイルで指定されましたか?現時点では、DialogFragmentのonResume()メソッドでダイアログの幅と高さを次のように指定する必要があります... getDialog().getWindow().setLayout(width, height); ...したがって、望ましくないことに、ダイアログの幅と高さを2か所で将来変更することを忘れないでください。

5
FragmentPagerAdapterはAndroid.Support.V4.Appにのみ存在します(Android.Appには存在しません)
Android.App内でFragmentPagerAdapterが見つかりません。 ターゲットAPIが14以降(Android 4.0以降)であるため、Android.Support.V4.Appのフラグメントを使用したくありません。だから、私はAndroid.App.Fragmentsのプレーンとそれに関連するクラスを使用したいと思います。 私はそれをAndroid.Support.V4.App内でのみ見つけましたが、これは私にとって十分ではありませんb / c私はAndroid.App.Fragment(Android.Support.V4.App.Fragment'sではありません)を使用しようとしていますAndroid.App内の関連クラス(Android.Support.V4.Appではありません)。サポートライブラリからの場合、FragmentPagerAdapterからページャーを派生させると、Android.AppとAndroid.Supportの間で型の不一致が発生するため、コードがコンパイルされません。 .V4.App。 android.app.Fragmentにキャストできない場合と同様に、FragmentPagerAdapterなどの代わりに使用する「通常の」ページャー(PagerAdapter)クラスはありますか(FragmentActivityではなく、通常のActivityから派生したように、 API 11以上をターゲットにする場合)。 これが私が作業しているサンプルコードです(https://github.com/xamarin/monodroid-samples/tree/master/Support4にあるMonoDroidの例のSupport4.slnソリューション内のFragmentPagerSupport.csファイル)。 Android.Support.V4.Appを参照する行をコメントアウトし、Android.Appを参照するコードに置き換えました。私が見つけたAndroid.Support.V4.Appの外にFramePagerAdapterはなく、本当に必要です)。 ありがとう。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; using Android.Views; using Android.Widget; //using Android.Support.V4.App; //using Android.Support.V4.View; namespace Support4 { [Activity (Label = "@string/fragment_pager_support")] [IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ "mono.support4demo.sample" …

5
DialogFragmentのタイトルを設定する方法は?
これは簡単なタスクですが、何らかの理由でDialogFragmentのタイトルを設定する方法を見つけることができます。(私はonCreateViewオーバーロードを使用してダイアログの内容を設定しています)。 デフォルトのスタイルはタイトルの場所を残しますが、DialogFragmentクラスにそれを設定するメソッドが見つかりません。 onCreateDialogメソッドを使用してコンテンツを設定すると、タイトルがどういうわけか魔法のように設定されるので、これは設計によるのか、またはonCreateViewオーバーロードを使用するときに設定する特別なトリックがあるのか​​と思います。


30
クラスフラグメントの拡張エラー
エラーが出る Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment ポートレートモードとランドスケープモードを切り替えると、フラグメントを使用しています。私のxmlは: <LinearLayout android:id="@+id/mainLayout" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ListView android:id="@+id/android:list" android:layout_height="wrap_content" android:layout_width="fill_parent"/> <fragment android:id="@+id/fragmentDetails" android:layout_height="fill_parent" android:layout_width="fill_parent" class="de.androidbuch.activiti.task.TaskDetailsFragment"/> </LinearLayout> 横モードと縦モードで切り替えると、すべてが正常に動作します。しかし、フラグメントをクリックして(フラグメントを表示できます)、他のモードに切り替えると、エラーが発生します。どのように私はそれを解決することができますか?ここにいくつかの答えが見つかりましたが、どれも私を助けませんでした... 06-21 14:55:05.600: ERROR/AndroidRuntime(7636): FATAL EXCEPTION: main 06-21 14:55:05.600: ERROR/AndroidRuntime(7636): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: …

13
バックスタックに追加したときにフラグメントの状態を維持するにはどうすればよいですか?
2つのフラグメントを切り替えるダミーアクティビティを作成しました。FragmentAからFragmentBに移動すると、FragmentAがバックスタックに追加されます。ただし、FragmentAに戻ると(押し戻すことにより)、まったく新しいFragmentAが作成され、その状態が失われます。私はこの質問と同じことをしているように感じますが、問題を根絶するのに役立つ完全なコードサンプルを含めました。 public class FooActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.replace(android.R.id.content, new FragmentA()); transaction.commit(); } public void nextFragment() { final FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.replace(android.R.id.content, new FragmentB()); transaction.addToBackStack(null); transaction.commit(); } public static class FragmentA extends Fragment { @Override public View onCreateView(LayoutInflater …

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