Добавление двухпанельных макетов планшета Причины Просмотр не найден в мобильном телефоне (менее w600dp) - PullRequest
0 голосов
/ 26 марта 2020

Я хочу настроить мое приложение для выпечки так, чтобы для планшета оно отображало макет с двумя панелями (2 фрагмента):

Фрагмент A = Левая панель: содержит шаги рецепта, перечисленные в RecyclerView и Fragment B = Right панель: содержит подробности шага

В случае мобильного телефона (где для макета xml установлено значение меньше w600dp), я хочу показать только фрагмент A.

Вот код в моем Действие, которое содержит эти два фрагмента:

public class RecipeActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recipe);

        // Instantiate Fragment Manager in charge of fragments associated with this Activity
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        RecipeFragment recipeFragment = new RecipeFragment();
        fragmentTransaction.add(R.id.recipe_container, recipeFragment).commit();

        RecipeDetailsFragment recipeDetailsFragment = new RecipeDetailsFragment();
        fragmentManager.beginTransaction().add(R.id.recipe_details_container, recipeDetailsFragment).commit();


        }
    }
}

Приложение выдает эту ошибку при запуске в эмуляторе мобильного экрана:

java .lang.IllegalArgumentException: не найдено представление для id 0x7f070081 (com.example.bakingapp: id / recipe_details_container) для фрагмента RecipeDetailsFragment {a70b224 (264e9189-e051-400b-9899-ba42871c2f89) id = 0x7f0700

* 1015 recipe_details_container для менеджера транзакций, тогда фрагмент сможет загружаться без проблем.

Итак, мои вопросы:

  1. Может кто-нибудь объяснить что мне нужно кодировать в этом методе, чтобы учесть случай планшета?
  2. Думаю, что я что-то упустил в моем понимании, некоторые уточнения были бы полезны.

1 Ответ

0 голосов
/ 26 марта 2020

Поскольку контейнер R.id.recipe_details_container не существует в «мобильном» макете. Вы должны проверить, существует ли представление, прежде чем пытаться добавить фрагмент сведений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...