Что я хочу сделать, так это то, что когда я нажимаю кнопку (BtnA или BtnB), фрагмент чуть ниже кнопок заменяется соответствующим фрагментом (FragmentA или FragmentB).Android: фрагмент не заменен
это мой код в MainActivity.java
@Override
public void onClick(View v) {
Fragment replacableFragment = new Fragment();
switch (v.getId()){
case R.id.button1:
{
replacableFragment = new Fragment_One();
Log.d("OnClick","button1");
break;
}
case R.id.button2:
{
replacableFragment = new Fragment_Two();
Log.d("OnClick","button2");
break;
}
}
FragmentManager manager= getFragmentManager();
Log.d("OnClick","1");
FragmentTransaction transaction = manager.beginTransaction();
Log.d("OnClick","2");
transaction.add(R.id.fragmentPlace, replacableFragment);
//transaction.addToBackStack(null);
Log.d("OnClick","3");
transaction.commit();
}
и это мой код Fragment_One.java
public class Fragment_One extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_one,container,false);
}
}
Fragment_Two.java То же самое с «inflater.inflater (R.layout .fragment_two, контейнер, ложь);»
Когда я нажимаю любую кнопку, logcat показывает все точно. Но Фрагмент вообще не заменен. Я думаю, что у моего кода нет проблем, чтобы его использовать.
Может ли знать об этом?
файлы XML для моего проекта ниже:
activity_main.xml
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="FRAGMENT ONE"
android:id="@+id/button1"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="FRAGMENT TWO"
android:id="@+id/button2"/>
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragmentPlace"
android:name="lkm.com.practical5_3.Fragment_One"/>
fragment_one.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="@android:color/holo_orange_dark"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="THIS IS FRAGMENT ONE"
android:id="@+id/text1"/>
</LinearLayout>
fragment_two.xml
Тот же один, как 'fragment_one.xml'
Спасибо за ответ, но он не работает, и я мог ожидать его, потому что это ничего не значит и ничего не меняет ... – LKM
Я думаю, вы должны использовать макет для фрагмента контейнера insted фрагмента. –
Есть ли что-то под названием «Fragment Container»? Я так не думаю ... не так ли? Я не понимаю, что вы имеете в виду – LKM