Я использую ViewPager и TabLayout. Если вкладки могут быть размещены на tabMode дисплее они должны быть:Различные tabMode для TabLayout
app:tabMode="fixed"
еще
app:tabMode="scrollable"
Как я могу это сделать?
Я использую ViewPager и TabLayout. Если вкладки могут быть размещены на tabMode дисплее они должны быть:Различные tabMode для TabLayout
app:tabMode="fixed"
еще
app:tabMode="scrollable"
Как я могу это сделать?
Я din't получить ваш вопрос, но я могу помочь вам, если рассчитывать Вкладки статический или фиксированный (вы знаете, количество вкладок), то app:tabMode="fixed"
если рассчитывать вкладки являются динамические (данные, поступающие с кормом) затем app:tabMode="scrollable"
я не получил свой вопрос, но ответ, данный в андроиде документации
, когда вы должны использовать приложение: tabMode = «фиксированный» или приложение: tabMode = «прокручивать»
tabMode = «fixed» Фиксированные вкладки одновременно отображают все вкладки и лучше всего используются с контентом, который выигрывает от быстрого поворота между вкладками.
app: tabMode = "прокручиваемый" Прокручиваемые вкладки отображают поднабор вкладок в любой момент и могут содержать более длинные метки ярлыков и большее количество вкладок. Они лучше всего используются для просмотра контекстов в сенсорных интерфейсах, когда пользователям не нужно напрямую сравнивать метки вкладок. Этот режим обычно используется с ViewPager.
Если проблема заключается в том, что для определенных конфигураций экрана (например, небольшие экраны, портрет конфигурации и т.д.) вкладки должны быть прокручивать, потому что они не соответствуют экрану, а для другого экрана конфигурации/размеры бумаги количество вкладок идеально вписывается в экран, вы можете просто использовать квалификаторы ресурсов для определения своих вкладок по-разному для разных конфигураций/размеров экрана.
Например, представьте, что ваши вкладки не вписываются в портрет, но подходят для пейзажа. Следовательно, можно хотеть, чтобы вкладки были scrollable
в портрете и fixed
в пейзаже.
res/layout/tabs.xml
будет содержать TablLayout
использовать в портретном:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabs"
app:tabMode="scrollable"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
и res/layout-land/tabs.xml
будет содержать TabLayout
, используемый в ландшафтном:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Затем в макете, который содержит вкладки, просто включите его например:
<include layout="@layout/tabs" />
Надеюсь, это то, что вы ищете.
В макете XML, я объявил
неподвижную
и в классе Java фрагмент, я сделал это:
if (tabLayout == null) {
tabLayout = (TabLayout) view.findViewById(R.id.tabs);
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
double wi = (double) width/(double) metrics.xdpi;
double hi = (double) height/(double) metrics.ydpi;
double x = Math.pow(wi, 2);
double y = Math.pow(hi, 2);
double screenInches = Math.sqrt(x + y);
if (screenInches < 4) {
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
}
}
, что ваш вопрос? – ticofab
Возможный дублированный вопрос: http://stackoverflow.com/questions/30616474/android-support-design-tablayout-gravity-center-and-mode-scrollable – issamux
Возможный ответ: http://stackoverflow.com/a/31363030/3187366 – issamux