标签: android-tabs

如何设置android Horizo​​ntalScrollView从右到左的行为(默认从右侧选择选项卡,而不是左侧)

如何设置 Horizo​​ntalScrollView 以从右到左的方式运行?默认行为是显示的第一个选项卡(默认选项卡)位于左侧。我希望选项卡反向排序,以便第一个“默认”选项卡位于屏幕的右侧。

我怎么做?我使用了layout_gravity,但它不起作用..

这是我的布局代码,包含 tabhost 和 Horizo​​ntalScrollView:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </HorizontalScrollView>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</LinearLayout>

</TabHost>
Run Code Online (Sandbox Code Playgroud)

android android-tabs

5
推荐指数
1
解决办法
2986
查看次数

如何知道页面是从Viewpager的Tab的Swipe还是Click中选择的

我有一个工具栏选项卡的 ViewPager。

我必须知道用户点击标签的次数以及用户滑动和选择页面的次数。

为此,我正在使用 ViewPager.OnPageChangeListener()。

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override public void onPageSelected(int position) {
         // Here i am sending the GA event
    }

    @Override public void onPageScrollStateChanged(int state) {

    }
  });
Run Code Online (Sandbox Code Playgroud)

OnPageSelected 被调用用于单击和滑动页面。我将如何区分所选页面是从选项卡的点击还是从 Viewpager 的滑动?

android android-viewpager android-tabs android-toolbar

5
推荐指数
2
解决办法
1347
查看次数

如何沿着 Viewpager 显示圆形选项卡指示器?

我想显示一个选项卡指示器,如下图所示。

选项卡指示器

我正在使用viewpager。我已经尝试过使用 viewpager 的 TabLayout,其中我们只能调整选项卡指示器的颜色和高度。我怎样才能实现这个。

android android-layout android-tabs android-tablayout

5
推荐指数
1
解决办法
7254
查看次数

action_bar_embed_tabs如何在Android中正常运行?

我在操作栏中有标签.在大屏幕上,标签嵌入到操作栏中,但在小屏幕上则没有.我想控制选项卡手册,以便我可以将选项卡与操作栏分开.我试图设置abs__action_bar_embed_tabs,但这不起作用

<resources>
    <bool name="abs__action_bar_embed_tabs">false</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock android-actionbar android-tabs

4
推荐指数
2
解决办法
2224
查看次数

4
推荐指数
1
解决办法
9220
查看次数

Android Scrollable Tabs +滑动时滑动状态

我正在尝试使用多个Tabs创建一个应用程序.对于每个标签,我使用不同的片段.当我浏览标签时,其中的信息正在发生变化.

如何在滑动时保存每个标签的状态?

代码例如:

MainActivity.java:

package com.tabs.example;

import java.util.Locale;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;

public class MainActivity extends FragmentActivity {

    SectionsPagerAdapter mSectionsPagerAdapter;
    ViewPager            mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_tab_strip);
        pagerTabStrip.setBackgroundColor(Color.BLACK);
        pagerTabStrip.setTabIndicatorColor(Color.CYAN);
        pagerTabStrip.setTextColor(Color.WHITE);
    }

    public class SectionsPagerAdapter extends FragmentPagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {

            Fragment …
Run Code Online (Sandbox Code Playgroud)

java android swipe android-viewpager android-tabs

4
推荐指数
1
解决办法
8578
查看次数

在TabLayout支持库中以编程方式设置选项卡指示器位置

在我的应用程序中,我使用支持库中的TabLayout和视图pager.我有3个片段.假设我在fragA中有一个按钮,点击后将我带到fragB.I成功地去了fragB但是唯一的问题是制表符仍然在fragA.

 private void setupTablayout() {


        tabLayout = (TabLayout) findViewById(R.id.tabLayout);
        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
        tabLayout.setupWithViewPager(viewPager);
        viewPager.setCurrentItem(1, true);

        tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText("");
        tabLayout.getTabAt(1).setIcon(R.drawable.status_1).setText("");
        tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText("");

        tvHeader.setText("STATUS");

        tabLayout.setOnTabSelectedListener(this);
        //tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));


    }

    @Override
    public void onTabSelected(TabLayout.Tab tab) {

        viewPager.setCurrentItem(tab.getPosition());
        switch (tab.getPosition()) {
            case 0:

                tab.setIcon(R.drawable.archive_1).setText("");
                tvHeader.setText("ARCHIVES");
                tvDate.setVisibility(View.GONE);
                ivRefresh.setVisibility(View.VISIBLE);

                break;
            case 1:
                tab.setIcon(R.drawable.status_1).setText("");
                tvHeader.setText("STATUS");
                tvDate.setVisibility(View.VISIBLE);
                ivRefresh.setVisibility(View.VISIBLE);
                break;
            case 2:
                tab.setIcon(R.drawable.settings_1).setText("");
                tvHeader.setText("SETTINGS");
                tvDate.setVisibility(View.GONE);
                ivRefresh.setVisibility(View.GONE);
                break;


        }
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {


        viewPager.setCurrentItem(tab.getPosition());
        switch (tab.getPosition()) {
            case 0:

                tab.setIcon(R.drawable.archive).setText("");

                break;
            case 1:
                tab.setIcon(R.drawable.status).setText("");
                break;
            case 2:
                tab.setIcon(R.drawable.settings).setText("");
                break;


        }

    }


    @Override …
Run Code Online (Sandbox Code Playgroud)

android android-tabs android-support-library

4
推荐指数
1
解决办法
1万
查看次数

在android中使用Tabs的CoordinatorLayout?

我是新手,CoordinatorLayout我想coordinatorLayout在我的应用程序中使用,但它在显示CollapsingToolbarLayout视图中导致一些问题.

在此输入图像描述

我想设计视图例如WhatsApp屏幕TabsCoordinatorlayout

我的XML代码

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/detail_backdrop_height"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">


        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="false"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="32dp"
            app:expandedTitleMarginStart="24dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

                </android.support.v7.widget.Toolbar>
            </LinearLayout>

         <android.support.design.widget.TabLayout
            android:id="@+id/tabanim_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>


    <android.support.v4.view.ViewPager
        android:id="@+id/tabanim_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

  <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        // child view

    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>`
Run Code Online (Sandbox Code Playgroud)

android android-tabs android-coordinatorlayout android-collapsingtoolbarlayout

4
推荐指数
1
解决办法
7155
查看次数

FragmentPagerAdapter重写getItem()方法冲突

为了在Android中实现滑动标签,我遵循以下指南:使用TabLayout的Google Play样式标签

在实现FragmentPageAdapter时,我遇到了一个问题,即"getItem()"方法,该方法用于返回具有相关位置的片段,在本例中为"PageFragment.newinstance(position + 1)".PageFragment是一个通用的片段.问题本身是:

"com.myProject.SampleFragmentPagerAdapter"中的"getItem(int)"与"android.support.v4.app.FragmentPagerAdapter"中的"getItem(int)"冲突; 尝试使用不兼容的返回类型

有人可以找出问题所在吗?

我已附加指南的SampleFragmentPagerAdapter以加快检查速度:

    public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
    final int PAGE_COUNT = 3;
    private String tabTitles[] = new String[] { "Tab1", "Tab2", "Tab3" };
    private Context context;

    public SampleFragmentPagerAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public Fragment getItem(int position) {
        return PageFragment.newInstance(position + 1);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // Generate title based on item position …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tabs

4
推荐指数
1
解决办法
3027
查看次数

在Android支持TabLayout上添加OnLongClickListener TabLayout.Tab

我正在使用服务库中的TabLayout.我在长按一个选项卡时尝试添加OnLongClickListener.对我来说这是不可能的.我甚至试图通过使用childViews来"破解"它:

View tabLayoutChild = tabLayout.getChildAt(0);
    ViewGroup group = (ViewGroup) tabLayoutChild;
    group.getChildAt(0).setOnLongClickListener(this);
Run Code Online (Sandbox Code Playgroud)

不起作用,看起来不漂亮.除了我想实现的longClick之外,它都非常方便.

我的一小段代码

pagerAdapter = new CustomFragmentPagerAdapter(getSupportFragmentManager());
    pagerView.setAdapter(pagerAdapter);
    tabLayout.setupWithViewPager(pagerView);
Run Code Online (Sandbox Code Playgroud)

tablayout有一个方法,setOnLongClickListener()但我可以告诉它,它什么都不做.

如何为tablayout中的选项卡实现LongClickListener?

android onlongclicklistener android-tabs android-tablayout

4
推荐指数
1
解决办法
1536
查看次数