#c# #xamarin #xamarin.android
#c# #xamarin #xamarin.android
Вопрос:
Я новичок в Xamarin. Я пытаюсь создать простую навигацию для приложения для Android.
У меня есть основной макет, который содержит кнопки навигации, а затем я включаю его в макет, который должен быть загружен с помощью:
<include layout="@layout/activity_main" />
Затем я вызываю макеты с помощью кнопок навигации:
public bool OnNavigationItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Resource.Id.navigation_home:
SetContentView(Resource.Layout.home_layout);
return true;
case Resource.Id.navigation_dashboard:
textMessage.SetText(Resource.Layout.dashboard_layout);
return true;
case Resource.Id.navigation_settings:
SetContentView(Resource.Layout.layout_settings);
return true;
}
return false;
}
Однако, когда я запускаю его, и вы нажимаете одну из навигационных ссылок, загружается первая, а последующие не загружаются.
Похоже, что он не обновляется после загрузки нового макета.
Комментарии:
1. Вы бы сделали это с фрагментами и с помощью транзакций фрагментов вместо замены contentView.
2. Нет ли способа сделать это с помощью contentView?
3. Это не рекомендуется, нет.
4. Вы здесь не помогаете себе. Ответ таков. Нет, это невозможно использовать
SetContentView
, потому что вы заменяете весь вид. Если у вас возникли проблемы с пониманием того, как работают фрагментные транзакции, создайте новый вопрос, описывающий эти проблемы и то, что вы пробовали.5. Я имею в виду, я погуглил это и не нашел подходящего решения. Я думал, что это основная идея Stackoverflow — оказывать помощь тем, кто спрашивает, и, надеюсь, тем самым останавливать людей в будущем, задавая одни и те же вопросы. Но да, это место раньше было хорошим.