Я нашел много об этом, но я действительно не могу решить свою проблему. Я потратил часы на это, но ничего.Невозможно загрузить фрагменты из элементов навигационного ящика
У меня есть рабочий ящик для навигации, сделанный с помощью шаблонов Android Studio 2.1.1. Конечно, я хочу изменить представление своего приложения, когда я нажимаю на элемент в меню, показывая разные фрагменты. Это код, который я имею в MainActivity:
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
new gaussFragment();
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
Когда я нажимаю на первый пункт навигационной панели (тот, с идентификатором R.id.nav_camera
) Я могу видеть тост, но новый фрагмент не появляется. Я использую этот код в gaussFragment()
:
public class gaussFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_gauss, container, false);
}
}
Конечно, как вы можете видеть here fragment_gauss.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="info.androidhive.tabsswipexx.gaussFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
</FrameLayout>
Как я мог решить эту проблему?
Содержание_main - это первое, что я вижу, когда приложение запускается. Должен ли я попытаться добавить что-то вроде
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
и как-то загружать там мои фрагменты?
Ok, вы сделали новый фрагментировать d он сразу же собрал мусор ... Вам нужно FragmentTransaction, чтобы загрузить его в FrameLayout –
Как мне его закодировать? –
Посмотрите, поможет ли [документация] (https://developer.android.com/training/basics/fragments/fragment-ui.html), а затем вернется с вопросами. –