Не отображается Fragment

168
22 октября 2018, 00:40

Имеется NavigateActivity, в которой реализовано отображение навигационного меню.

public class NavigateActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
ExampleFragment exampleFragment;
FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigate);
    exampleFragment = new ExampleFragment();
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayHomeAsUpEnabled(true);
    actionbar.setHomeAsUpIndicator(R.drawable.ic_menu);
    actionbar.getCustomView();
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    mDrawerLayout = findViewById(R.id.drawer_layout);
    fragmentManager = getSupportFragmentManager();
    NavigationView navigationView = findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(
            menuItem -> {
                switch (menuItem.getItemId()) {
                    case R.id.myTasks:
                        fragmentManager.beginTransaction().replace(R.id.content_frame, exampleFragment).commit();
                        break;
                    case R.id.taskEntry:
                        break;
                    case R.id.exit:
                        break;
                }
                Toast.makeText(NavigateActivity.this, "Выбран элемент " + menuItem.getTitle(), Toast.LENGTH_LONG).show();
                menuItem.setChecked(true);
                mDrawerLayout.closeDrawers();
                return true;
            });
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            mDrawerLayout.openDrawer(GravityCompat.START);
            return true;
    }
    return super.onOptionsItemSelected(item);
}
public static Intent newIntent(Context packageContext, boolean
        isCorrect) {
    Intent i = new Intent(packageContext, NavigateActivity.class);
    return i;
}

Задача: добавить фрагмент в контейнер, который находится во FrameLayout (activity_navigate.xml)

<!-- Use DrawerLayout as root container for activity -->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    <!-- Layout to contain contents of main body of screen (drawer will slide over this) -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/Widget.AppCompat.ActionBar" />
    <!-- Container for contents of drawer - use NavigationView to make configuration easier -->
    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:menu="@menu/drawer_view"/>
    </android.support.v4.widget.DrawerLayout>

Класс фрагмента:

 import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    public class ExampleFragment extends Fragment {
        @Nullable
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            return inflater.inflate(R.layout.example_fragment,container,false);
        }
    }

Приложение запускается, но ничего не происходит(фрагмент не отображается, ошибок нет). Заранее спасибо за ответы!

Answer 1

У вас отсутствует программный код добавления фрагмента.

Почитайте побольше про фрагменты.

https://developer.android.com/guide/components/fragments?hl=ru

http://developer.alexanderklimov.ru/android/theory/fragments.php

READ ALSO
Как сравнить два OutputSream&#39;a, понять что содержимое эквивалентно?

Как сравнить два OutputSream'a, понять что содержимое эквивалентно?

Пишу UT и столкнулся с тем, что нужно сравнить expected и actual(полученный в ходе выполнения теста) потоки OutputStreamКак это лучше сделать, желательно...

176
Выравнивание HTML CSS

Выравнивание HTML CSS

Как сделать так, чтобы поля ввода с текстом выравнивались как на фото? Заранее спасибо

169
сделать скролинг блока по вертикали

сделать скролинг блока по вертикали

На странице есть блок с видео и текстовым контентом справа от негоКак сделать так, чтобы у текстового контента был только вертикальный скролл...

141