@Masteron

Динамическая работа с фрагментами?

По нажатию кнопки должен появиться фрагмент но нечего не случается в чем проблема?

Предоставляю код фрагмента:
public class ProfileFragment extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_profile,null);
    }

}

Код активности с onClick:
public class WorkActivity extends AppCompatActivity {
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_work);      
    }
public void onClick(View view) {
        Fragment  profileFragment = new Fragment();
        FragmentTransaction fragt = getFragmentManager().beginTransaction();
        fragt.add(R.id.mainLayout, profileFragment);
        fragt.commit();

    }
}


И сам layout файл:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".Activity.WorkActivity">
    <include layout="@layout/toolbar"
        android:id="@+id/toolbar"></include>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mainLayout"
        android:layout_alignTop="@+id/button"
        android:orientation="horizontal"></LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_below="@+id/toolbar"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="45dp"
        android:onClick="onClick"
        android:layout_marginStart="45dp" />

</RelativeLayout>
  • Вопрос задан
  • 631 просмотр
Пригласить эксперта
Ответы на вопрос 2
1)Вы используете Fragment из библиотеки поддержки(android.support.v4) или обычный фрагмент?
Если из библиотеки, тогда используйте getFragmentSupportManager() вместо getFragmentManager().beginTransaction()

2) Fragment profileFragment = new Fragment();
Шедеврально.Может всё-таки создадите экземпляр своего фрагмента?
Fragment profileFragment = new ProfileFragment();

3)Метод onClick вызывается(проверьте логами)?

4)
И сам layout файл:

Это layout активности или фрагмента?Что такое R.id.mainLayout? Это FrameLayout или fragment, находящийся внутри layoutактивности?

5)Может фон фрагмента прозрачный , и вы не видите, что фрагмент появляется?
Ответ написан
@Elysey
Попробуйте заменить код на этот:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, container, false);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы