私の状況はアクティビティ(FrameLayoutのみ)ですが、1つのフラグメントに機能が2番目のfragmnetに変更されていますが、置換とコミットを設定すると失敗します。 私はこの機能を成功させるためにbrforeを試みましたが、現在は機能していません。 誰にでも問題を教えてもらえますか?それは感謝します。アンドロイドのフラグメントは2番目のフラグメントに置き換えられます
最初の断片コード:
public class StartPage extends Fragment implements View.OnClickListener {
}
public static StartPage newInstance() {
return new StartPage();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.start_page_fragment, container, false);
//findViews();
imageRegistered = (ImageView) view.findViewById(R.id.imageRegistered);
imageRegistered.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fragment=getFragmentManager();
FragmentTransaction transaction=fragment.beginTransaction();
transaction.replace(R.id.frameStartPage,Register.newInstance(),null);
transaction.commit();
Toast.makeText(getActivity(),"Test",Toast.LENGTH_SHORT).show();
}
});
return view;
}
、それは活動の私でframeLayoutです:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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/frameStartPage"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.huaweb_system.taiwanuniversityhome.MainActivity">
</FrameLayout>
MainActivity:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
if (savedInstanceState == null) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.frameStartPage, StartPage.newInstance());
transaction.commit();
}
}
}
第2のフラグメント:
public class Register extends Fragment implements View.OnClickListener {
public static StartPage newInstance() {
return new StartPage();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.register_activity, container, false);
findViews();
return view;
}
}
使用' getChildFragmentManager() ')のようなあなたの登録フラグメントのnewInstanceメソッドを変更する必要があります
。したがって' –
私でframeLayoutが活動上で、それは巣フラグメントではありませんので、私getChildFragmentManager()は正しいとは思わないが、試しても結果はクラッシュし、エラーメッセージはE/FragmentManager:ID 0x7f0d0073のビューが見つからない アドバイスありがとうございます。 –
フラグメントのレイアウトを表示しますか?フラグメントのIDを追加しましたか? –