私は、フラグメントをアクティビティの既定のビューとして読み込もうとしていますが、空白の画面と大きなメモリリークが発生します。アクティビティ起動時の既定のフラグメント
活動ファイルonCreate
方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (savedInstanceState == null) {
FragmentManager fragmentManager = getFragmentManager();
int fragmentTransaction = fragmentManager.beginTransaction()
.add(R.id.login_screen_fragment, new FragmentLogin())
.commit();
}
}
活動のためのXML:
<FrameLayout 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"
tools:context=".LoginActivity">
<fragment
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/login_screen_fragment"
class="com.test.project.FragmentLogin"
/>
<fragment
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/forgotten_password_fragment"
class="com.test.project.FragmentForgottenPassword"
/>
</FrameLayout>
とフラグメントのクラス(関連部分):
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_login, container, false);
final Activity activity = getActivity();
... code ...
return view;
}
私はAからの指示に従っチュートリアル誰かが別の質問から以前に提案したが、私はsomethiをしている必要があります恐ろしく間違っています。何か案は?
は、あなたのコード内で動的にそれらをロードする必要はありません。 –
@MikeM。私はどこでこれをしていますか? – mwieczorek
'if'ブロックは、' FragmentLogin'インスタンスを動的にインスタンス化して処理しています。 –