带Tabs的ActionBar

时间:2016-01-06 07:46:10

标签: android android-actionbar android-toolbar android-tablayout

您好我正在尝试将TabLayout放在ActionBar内,而不是在ActionBar.Tab之下。是否有可能完成?

我已经四处搜索并找到了<!-- HTML --> <a href="#" title="logo"><img src="#" alt="logo image"></a> /* CSS */ a {display: block; width: 50%;} img {width: 100%;} 类,但它已被弃用。还有其他想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用后退按钮和标签布局创建自己的布局。您可以在顶部使用此布局而不使用ActionBar。在后面点击以编程方式调用[Export("MyScheduleClicked")] public void MyScheduleClicked(View v) { var activity2 = new Intent(this, typeof(WebPage)); activity2.PutExtra("MyURL", "https://www.google.com"); StartActivity(activity2); } 方法。

onBackPressed()

答案 1 :(得分:0)

我在下面的库中使用了示例代码中的选项卡。 (将该行添加到您应用的平台中)

compile 'com.jpardogo.materialtabstrip:library:1.1.0'

并且您可以使用如下所示的工具栏布局:

<android.support.v7.widget.Toolbar 

xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        style="@style/Widget.MyApp.Toolbar.Solid" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/abc_action_bar_default_height_material"
        android:layout_below="@+id/toolbar">

        <com.astuetz.PagerSlidingTabStrip
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="@dimen/abc_action_bar_default_height_material"
            android:background="@color/AppPrimary"
            app:pstsIndicatorColor="#fff"
            app:pstsIndicatorHeight="4dp"
            app:pstsTabTextAllCaps="false"
            app:pstsTabTextColor="@color/tabTextColor"
            app:pstsTabTextSize="16sp"
            app:pstsUnderlineColor="@color/AppPrimary"
            app:pstsUnderlineHeight="4dp" />

        </RelativeLayout>

</RelativeLayout>

以下是我在示例布局中使用的样式:

<style name="Widget.MyApp.Toolbar.Solid" parent="Widget.AppCompat.ActionBar">
        <item name="android:background">@color/AppPrimary</item>
        <item name="android:theme">@style/ThemeOverlay.MyApp.ActionBar</item>
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">@dimen/abc_action_bar_default_height_material</item>
    </style>

    <style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
        <!-- Parent theme sets colorControlNormal to textColorPrimary. -->
        <item name="android:textColorPrimary">@android:color/white</item>
    </style>

在您的活动布局中,您必须包含以下工具栏:

<include
        android:id="@+id/toolbar_main"
        layout="@layout/toolbar_tabs" />

您必须将工具栏设置为支持操作栏并将其用作actonbar。

Toolbar mToolbar = (Toolbar)findviewById(R.id.toolbar_main);
setSupportActionBar(mToolbar);

为您的活动布局添加一个viewpager :(添加工具栏的位置)

<android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white"
        />

为viewpager创建一个适配器,如下所示:

public class TabsAdapter extends FragmentPagerAdapter {
    private List<YourModel> mObjects;

    public TabsAdapter(FragmentManager fm, List<YourModel> mObjects) {
        super(fm);
        this.mObjects = mObjects;
    }

    @Override
    public Fragment getItem(int position) {
        return new YourPagerFragment();
    }

    @Override
    public int getCount() {
        return mObjects.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mObjects.get(position).getName();
    }
}

最后,找到你的viewpager,pager滑动标签条,创建一个新的寻呼机适配器并将其设置为你的viewpager,如下所示:

ViewPager mViewPager = (ViewPager) findViewById(R.id.viewpager);
PagerSlidingTabStrip mTabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
TabsAdapter mAdapter = new TabsAdapter(getSupportFragmentManager(), objects);
mViewPager.setAdapter(mAdapter);
mTabs.setViewPager(mViewPager);
祝你好运。