Я должен создать какое-то приложение новостей, в котором есть список Новостей. При прослушивании следует показывать подробные новости. 1. Если телефон находился в режиме «Портрет», детали отображаются в другом действии. 2. Если телефон был в «Пейзаж», детали отображаются рядом с списком новостей в фрагменте макета детали в том же действии.Показать группу просмотра только в определенной ориентации
(есть фрагмент «Новости Список» и «Детали»)
Что я не могу добиться, чтобы избавиться от пространства Подробности фрагмент будет принимать - если бы я был в ландшафтном режиме - в Портретный режим.
Это потому, что я упомянул две пустые группы представлений как контейнер фрагментов в файле макета активности.
Я не хочу делать отдельный макет для каждой ориентации.
Есть ли способ скрыть или выровнять группу просмотра, если она пуста?
Соответствующие коды:
Главная XML активность:
<LinearLayout
android:id="@+id/news_list_container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.4"
>
</LinearLayout>
<LinearLayout
android:id="@+id/details_container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.6"
>
</LinearLayout>
</LinearLayout>
Основной класс активности - добавление фрагментов в соответствии с моей ориентацией:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get orientation first
if(this.getResources().getConfiguration().orientation==1) { //portrait
NewsList_fragment newsFrag = new NewsList_fragment(); //init any fragments that may be used
FragmentManager fManager = getFragmentManager(); //prepare fragment manager
FragmentTransaction fTransaction = fManager.beginTransaction();
// Add fragments using fTransaction and then commit
fTransaction.add(R.id.news_list_container, newsFrag);
fTransaction.commit();
}
else if (this.getResources().getConfiguration().orientation==2) { //landscape
NewsList_fragment newsFrag = new NewsList_fragment(); //init any fragments that may be used
Details_fragment detailsFrag = new Details_fragment();
FragmentManager fManager = getFragmentManager(); //prepare fragment manager
FragmentTransaction fTransaction = fManager.beginTransaction();
// Add fragments using fTransaction and then commit
fTransaction.add(R.id.news_list_container, newsFrag);
fTransaction.add(R.id.details_container, detailsFrag);
fTransaction.commit();
}
Спасибо заранее
Я решил свою проблему с details_view.setVisibility (View.GONE); Спасибо всем, кто показал свою озабоченность –