我正在使用带有选项卡的SupportActionBar和一个自定义ActionBar主题(使用http://jgilfelt.github.io/android-actionbarstylegenerator/创建),仅在用户展开搜索视图时显示选项卡.
public boolean onMenuItemActionExpand(MenuItem item) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
我从ActionBar迁移到工具栏.我的应用程序确实需要支持API 9.
有没有办法使用此代码添加标签?:
Toolbar toolbar = (Toolbar) findViewById(R.id.new_actionbar);
setSupportActionBar(toolbar);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Run Code Online (Sandbox Code Playgroud)
如果可能,我如何使用我的自定义主题或样式工具栏?
文档说这已被弃用,并建议使用不同类型的导航.但我不知道Android中具有相同功能的任何其他组件.
一些帮助?
tabs android android-appcompat android-support-library android-actionbar-compat
我正在使用谷歌的SlidingTabLayout.由于我只有3个标签要显示,我看到最后一个标签后的空格.请截图如下.
有人可以解释我如何使标签适合整个屏幕.谢谢你的时间.
我正在使用a TabLayout
并使用TabLayoutViewPager
显示ActionBar tabs
指南Google Play样式标签,但是我的标签被压缩到ActionBar的左侧,如下所示:
我希望他们以相同的宽度占据整个酒吧.我只对指南做了一些小改动:
在activity_main.xml中创建了一个样式来显示ActionBar:
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/AppTheme"
app:tabMode="scrollable" />
Run Code Online (Sandbox Code Playgroud)
这是styles.xml代码:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">true</item>
<item name="tabIndicatorColor">#ffff0030</item>
</style>
Run Code Online (Sandbox Code Playgroud)
此外,我MainActivity
现在扩展AppCompatActivity
而不是FragmentActivity
.
我的标签TabLayout
占据了屏幕的中心,即使tabMaxWidth = "0dp"
按照Adam John的回答添加,也没有填满整个宽度
这是我希望通过制表符扩展到填充屏幕,如下所示:
但我得到的是:
我的XML看起来像这样:
<android.support.design.widget.TabLayout
android:id="@+id/tl_contact_type"
style="@style/tabWidgetLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"/>
Run Code Online (Sandbox Code Playgroud)
style.xml for tabWidgetLayout
<style name="tabWidgetLayout" parent="Widget.Design.TabLayout">
<item name="tabIndicatorColor">@color/colorTealAccent</item>
<item name="tabIndicatorHeight">@dimen/default_corner_radius_medium</item>
<item name="tabBackground">?attr/selectableItemBackground</item>
<item name="android:background">@color/colorBrandPrimaryDark</item>
<item name="tabSelectedTextColor">@color/color_tab_selected_text</item>
<item name="tabTextAppearance">@style/tabWidgetLayoutTextAppearance</item>
</style>
Run Code Online (Sandbox Code Playgroud)
任何帮助解决这个问题非常感谢.
我正在使用TabLayout
并ViewPager
一起做一个标签式viewpager.
我有景观,其中一个怪异的行为TabLayout.GRAVITY_FILL
,并TabLayout.MODE_FIXED
似乎不工作,无论在Java或XML设定,(他们的肖像做就好了).
然而!当我做三个标签时,一切都很好!
问题在于两个标签 - 在横向上.
我的活动:
public class TabbedViewPager extends AppCompatActivity {
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabbed_viewpager);
initTabLayout1();
}
public void initTabLayout1() {
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
TabLayout.Tab tab1 = tabLayout.newTab();
tab1.setText("Tab 1");
tabLayout.addTab(tab1);
TabLayout.Tab tab2 = tabLayout.newTab();
tab2.setText("Tab 2");
tabLayout.addTab(tab2);
//TabLayout.Tab tab3 = tabLayout.newTab();
//tab3.setText("Tab 3");
//tabLayout.addTab(tab3);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
viewPager = (ViewPager) findViewById(R.id.view_pager);
final TabbedPagerAdapter adapter = new TabbedPagerAdapter(getSupportFragmentManager(),
tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); …
Run Code Online (Sandbox Code Playgroud) java android android-layout android-viewpager android-tablayout
我在 中添加了 2 个选项卡TabLayout
,以下是我的代码。
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
style="@style/AppTabLayout"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_gravity="center"
app:tabBackground="@drawable/tab_selector_statistics"
android:background="@drawable/tab_statistics"
app:tabContentStart="24dp"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/black"
app:layout_constraintBottom_toBottomOf="@+id/view5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view5"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true" />
Run Code Online (Sandbox Code Playgroud)
我得到以下输出。
但我希望标签占据屏幕的整个宽度,如下所示。
以下是我AppTabLayout
在styles.xml
文件中定义的样式。
<style name="AppTabLayout" parent="Widget.Design.TabLayout">
<item name="tabIndicatorColor">@null</item>
<item name="tabIndicatorHeight">1dp</item>
<item name="tabPaddingStart">16dp</item>
<item name="tabPaddingEnd">16dp</item>
<item name="tabSelectedTextColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我在新的android.support.design.widget包中使用TabLayout.
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabIndicatorColor="@android:color/white"
app:tabMode="fixed" />
Run Code Online (Sandbox Code Playgroud)
但在平板电脑上他们看起来像
如何拉伸它们以填满整个宽度.谢谢.