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

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

9
(非推奨)フラグメントonOptionsItemSelectedが呼び出されない
編集: この質問は、非推奨のシャーロックアクションバーに関するものでした。代わりにAndroidサポートライブラリを使用する必要があります 表示される共有と呼ばれるアクションバーメニューオプションを追加しましたfragmentが、選択イベントがキャッチされていません このように追加します @Override public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) { MenuItem item = menu.add(0, 7,0, R.string.share); item.setIcon(R.drawable.social_share).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } 両方でそれを捕獲しようとしているfragmentとfragment activityのような @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 7: Intent share = new Intent(Intent.ACTION_SEND); share.setType("text/plain"); share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!"); startActivity(Intent.createChooser(share, "Share Text")); return true; default: …

12
フラグメント内のMapView(Honeycomb)
最終的なSDKがgoogleapisでリリースされたので、MapViewを使用してフラグメントを作成するための最良の方法は何ですか?MapViewが正しく機能するには、MapActivityが必要です。 フラグメントを管理するアクティビティをMapActivityから継承し(フラグメントは自己完結型であるという考えに反するため、悪い解決策)、通常のxmlベースのレイアウトを使用することは機能しません。MapActivity.setupMapView()でNullPointerExceptionが発生します: E / AndroidRuntime(597):原因:java.lang.NullPointerException E / AndroidRuntime(597):com.google.android.maps.MapActivity.setupMapView(MapActivity.java:400) E / AndroidRuntime(597):com.google.android.maps.MapView。(MapView.java:289) E / AndroidRuntime(597):com.google.android.maps.MapView。(MapView.java:264) E / AndroidRuntime(597):com.google.android.maps.MapView。(MapView.java:247) 2番目のアイデアは、プログラムでMapViewを作成し、関連するアクティビティを(getActivity()を介して)ContextとしてMapViewコンストラクターに渡すことでした。動作しません: E / AndroidRuntime(834):原因:java.lang.IllegalArgumentException:MapViewsは、MapActivityのインスタンス内でのみ作成できます。 E / AndroidRuntime(834):com.google.android.maps.MapView。(MapView.java:291) E / AndroidRuntime(834):com.google.android.maps.MapView。(MapView.java:235) E / AndroidRuntime(834):de.foo.FinderMapFragment.onCreateView(FinderMapFragment.java:225)で E / AndroidRuntime(834):android.app.FragmentManagerImpl.moveToState(FragmentManager.java:708)で E / AndroidRuntime(834):android.app.FragmentManagerImpl.moveToState(FragmentManager.java:900)で E / AndroidRuntime(834):android.app.FragmentManagerImpl.addFragment(FragmentManager.java:978)で E / AndroidRuntime(834):android.app.Activity.onCreateView(Activity.java:4090)で E / AndroidRuntime(834):android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)で 本当に、MapViewが必要とするバックグラウンドスレッドを処理するMapFragmentのようなものがあるはずです...では、これを行うための現在のベストプラクティスは何ですか? ドイツ、バレンティンからの感謝とよろしく

3
Android互換パッケージにはActivity.getFragmentManager()が含まれていません
3月3日にリリースされたばかりのAndroid互換性パッケージを使用して、2.1に基づくAndroidアプリにフラグメントを追加しようと試み始めました。ライブラリをプロジェクトに含め、コードをアクティビティベースのクラスからフラグメントベースのクラスに移動し始めましたが、Googleのフラグメントの例は3.0のアクティビティクラス(Honeycomb)に依存しているように見えることに気付きました。新しいメソッドgetFragmentManager()があります。これは、フラグメントシステムに不可欠なフックのようです。 互換性パッケージライブラリ内で、getFragmentManager()を含むいくつかの含まれているActivity実装を調べようとしましたが、見つかりません。ハニカム互換性のためにフラグメントを含めることができるようにgetFragmentManager()を見つけることができる場所を誰かが知っていますか、そうでない場合は、FragmentManagerを使用せずにフラグメントを含める方法を知っていますか?

10
フラグメント-指定された子にはすでに親があります。最初に子の親でremoveView()を呼び出す必要があります
このエラーが発生します。私は多くの解決策を試しましたが、これを解決できませんでした。助けて!フラグメントを使用して、サーフェスビューとボタンをアクティビティに追加する必要があります。 CamActivity.java: public class CamActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cam); FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentById(R.id.fragmentContainer); if(fragment == null) { fragment = new CamFragment(); fm.beginTransaction() .add(R.id.fragmentContainer, fragment) .commit(); } } } CamFragment.java: public class CamFragment extends Fragment { private static final String …

5
アクティビティとフラグメントの違いは何ですか?
私の調査によると、バックスタックの概念とその存在方法には大きな違いがあります。 アクティビティ ときactivityに配置されるbackstackのactivitiesユーザだけ押すことにより、前のアクティビティに戻ってナビゲートすることができるback ボタン。 Activity 独立して存在することができます。 断片 fragmentアクティビティにが配置されたら、のaddToBackstack()間に呼び出すことによってインスタンスを保存するように要求する必要がありますfragment transaction。 Fragment 中に住んでいる必要があります activity 追加の違いはありますか?

2
viewLifecycleOwnerをLifecycleOwnerとして使用する
断片があります: class MyFragment : BaseFragment() { // my StudentsViewModel instance lateinit var viewModel: StudentsViewModel override fun onCreateView(...){ ... } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewModel = ViewModelProviders.of(this).get(StudentsViewModel::class.java) updateStudentList() } fun updateStudentList() { // Compiler error on 'this': Use viewLifecycleOwner as the LifecycleOwner viewModel.students.observe(this, Observer { //TODO: …

1
ViewModelStoreおよびviewModelStoreOwnerとは何ですか?
この新しいViewModelProvider api(ViewModelProvidersは非推奨)のため、私は非常に混乱しています 新しい変更と同様に、新しいコンストラクター(ソースコード)もあります。 #1 public ViewModelProvider(@NonNull ViewModelStoreOwner owner) { this(owner.getViewModelStore(), owner instanceof HasDefaultViewModelProviderFactory ? ((HasDefaultViewModelProviderFactory) owner).getDefaultViewModelProviderFactory() : NewInstanceFactory.getInstance()); } #2 public ViewModelProvider(@NonNull ViewModelStoreOwner owner, @NonNull Factory factory) { this(owner.getViewModelStore(), factory); } #3 public ViewModelProvider(@NonNull ViewModelStore store, @NonNull Factory factory) { mFactory = factory; mViewModelStore = store; } Gradle依存関係: implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02" …

4
フラグメントを切り替えるときのジャンプスクロール
ScrollViewの内部では、高さが異なる2つのフラグメントを動的に切り替えています。残念ながらそれはジャンプにつながります。次のアニメーションで確認できます。 「黄色を表示」ボタンに到達するまでスクロールダウンしています。 「黄色を表示」を押すと、巨大な青いフラグメントが小さな黄色のフラグメントに置き換えられます。これが発生すると、両方のボタンが画面の最後にジャンプします。 黄色のフラグメントに切り替えたときに、両方のボタンが同じ位置に留まるようにします。どうすればできますか? https://github.com/wondering639/stack-dynamiccontentで入手可能なソースコードそれぞれhttps://github.com/wondering639/stack-dynamiccontent.git 関連するコードスニペット: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/myScrollView" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textView" android:layout_width="0dp" android:layout_height="800dp" android:background="@color/colorAccent" android:text="@string/long_text" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button_fragment1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:text="show blue" app:layout_constraintEnd_toStartOf="@+id/button_fragment2" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> <Button android:id="@+id/button_fragment2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.