标签: android-tabs

如何使用特定选项卡启动活动?

我已经阅读了很多示例,问题和教程,但我从未见过具有特定选项卡的活动启动(启动新意图).我知道可以使用.setCurrentTab切换到选项卡,但这只能从父活动选项卡内部完成.如何从不同的活动中启动一个活动中包含的特定选项卡?可能吗?如果是这样,那怎么样?

在我的代码中,在标准活动启动用户显示第一个选项卡,但我希望他转到第四个选项卡,以防他从另一个活动重定向.我的TabHost代码(MyTabActivity):

int tabIndex = 0;

          mTabHost.addTab(mTabHost.newTabSpec("top10").setIndicator("Top 10").setContent(R.id.Top_10));
          mTabHost.addTab(mTabHost.newTabSpec("billable").setIndicator("Billable").setContent(R.id.Billable));
          mTabHost.addTab(mTabHost.newTabSpec("product").setIndicator("Product").setContent(R.id.Product));
          mTabHost.addTab(mTabHost.newTabSpec("regular").setIndicator("Regular").setContent(R.id.General));


          mTabHost.setCurrentTab(tabIndex);
Run Code Online (Sandbox Code Playgroud)

现在进行另一项活动:

public void gotoTab() {
//This will take me to the first tab
Intent i = new Intent(this, MyTabActivity.class);
startActivity(i);
finish();
//How to I make it take me to the fourth tab?
}
Run Code Online (Sandbox Code Playgroud)

android android-tabhost android-tabactivity android-tabs

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

在Android标签中更改文本大小

我一直在标签栏中遇到文字大小的问题。下面是图片,

在此处输入图片说明

这是我的代码,

MainActivity.java

public class MainActivity extends Activity implements OnTabChangeListener, OnPageChangeListener{  
    private TabHost tabHost;  
    private ViewPager pager; 

 @Override  
 public void onCreate(Bundle savedInstanceState) {  
   super.onCreate(savedInstanceState);  
   setContentView(R.layout.activity_main);  
   tabHost = (TabHost)findViewById(android.R.id.tabhost);  
   pager = (ViewPager) findViewById(R.id.pager);  

   tabHost.setup();  
   TabWidget tabwidget=tabHost.getTabWidget();

   TabSpec spec = tabHost.newTabSpec("tab1");  
   spec.setContent(R.id.tab1);  
   spec.setIndicator("Check In");  
   tabHost.addTab(spec);  

   spec = tabHost.newTabSpec("tab2");  
   spec.setContent(R.id.tab2);  
   spec.setIndicator("Buddies");  
   tabHost.addTab(spec);  

   spec = tabHost.newTabSpec("tab3");  
   spec.setContent(R.id.tab3);  
   spec.setIndicator("Recommendation");  
   tabHost.addTab(spec); 

   spec = tabHost.newTabSpec("tab4");  
   spec.setContent(R.id.tab4);  
   spec.setIndicator("Feed");  
   tabHost.addTab(spec); 

   spec = tabHost.newTabSpec("tab5");  
   spec.setContent(R.id.tab5);  
   spec.setIndicator("Last");  
   tabHost.addTab(spec);

   pager.setAdapter(new MyPagerAdapter(this));  
   pager.setOnPageChangeListener(this);  
   tabHost.setOnTabChangedListener(this);  

 }  
    @Override  
    public void onTabChanged(String tabId){  
         int pageNumber = …
Run Code Online (Sandbox Code Playgroud)

android android-tabs

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

是否可以使用FragmentTabHost手动创建片段?

FragmentTabHost 在其通常的配置中足够有礼貌地为我们处理片段的实例化,这意味着我们只需要传入类中,并完成剩下的工作:

mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("friends").setIndicator("Friends"), FriendsFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), ContactsFragment.class, null);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我们只需要传递Fragment类(例如FriendsFragment.class)和传递的args包(在本例中null)并且FragmentTabHost将为我们处理片段的初始化.它似乎也很懒惰,只会在实际更改选项卡时加载片段.

在很多情况下都很棒,但我想要做的是手动预先创建我的片段,然后将它们附加到FragmentTabHost之后.这样做的主要优点是我可以确保所有选项卡片段始终存在,而不是在用户更改选项卡时懒惰地创建.

理想情况下,我想拥有的是这样的东西(如果只存在方法!):

FriendsFragment f1 = new FriendsFragment();
ContactsFragment f2 = new ContactsFragment();

mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("friends").setIndicator("Friends"), f1);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), f2);
Run Code Online (Sandbox Code Playgroud)

所以问题是:是否可以手动预先创建片段,FragmentTabHost或者是否有必要完全采用不同的方法?

android android-fragments android-tabs

5
推荐指数
0
解决办法
240
查看次数

如何在材料设计中使用ViewPager创建工具栏选项卡

任何人都知道如何在API 21/AppCompat工具栏中完成选项卡

我发现的很多材料和文章都很旧.他们使用ActionBar的旧方法现在不起作用.此刻我刚刚创建了工具栏,并且没有关于工具栏标签的想法.那么,任何人都可以提供有关如何使用viewpager创建工具栏选项卡的示例或文章吗?

android android-viewpager android-tabs material-design android-toolbar

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

TabLayout中的图标

我有一个简单的东西AppCompatActivity,一个简单的东西Toolbar(android.support.v7.widget.Toolbar),一个设计库TabLayout和一个ViewPager

现在,在这种情况下,我有4个片段,它们位于viewpager内部,可以从侧面滑动。很好 但是,一旦我使用mTabLayout.setupWithViewPager(mViewPager);,图标就会消失,但是我可以在空白处进行切换,效果很好。如果我删除该行,图标将再次可见,“滑动”将起作用,但是如果我使用Tab键选择图标,则不会发生任何事情。

我的密码

主要活动

public class MainActivity extends AppCompatActivity {

    private Toolbar mToolbar;
    private TabLayout mTabLayout;
    private ViewPager mViewPager;
    private ViewPagerAdapter mAdapter;


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

        initToolbar();
        initTabLayout();
        initViewPager();

        mTabLayout.setupWithViewPager(mViewPager);//Here is the code from above
        mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));

    }

    private void initToolbar() {
        mToolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);

    }

    private void initTabLayout() {
        mTabLayout = (TabLayout) findViewById(R.id.tabLayout);
        mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.ic_fire_white));
        mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.ic_apps_white));
        mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.ic_account_plus_white));
        mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.ic_help_white));

    }

    private void initViewPager() …
Run Code Online (Sandbox Code Playgroud)

android android-tabs android-design-library

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

Tablayout 更新自定义视图选项卡的页面标题

我制作了一个 tablayout 选项卡,它具有选项卡的自定义布局,有时我希望更改这些选项卡的标题。但我没有得到正确的方法,请帮助我。

我的custom_tab.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/titttle"
        android:textStyle="bold"
        android:text="MYTITLE"
        android:paddingLeft="10dp"/>

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/count"
        android:textStyle="bold"
        android:text="1"
        android:paddingLeft="10dp"/>

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

并在MainActivity.java 中

tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
 tabLayout.getTabAt(0).setCustomView(R.layout.tab_custom_view);
 tabLayout.getTabAt(1).setCustomView(R.layout.tab_custom_view);
TextView textView = (TextView)tabLayout.getChildAt(1).getRootView().findViewById(R.id.titttle);
textView.setText("New Title");
Run Code Online (Sandbox Code Playgroud)

这里

TextView textView = (TextView)tabLayout.getChildAt(1).getRootView().findViewById(R.id.titttle);
    textView.setText("New Title");
Run Code Online (Sandbox Code Playgroud)

不工作,帮我更新自定义选项卡的文本视图。

android-fragments android-activity android-tablelayout android-tabs android-design-library

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

自定义标签布局滑动方向

我一直在尝试将tabLayout设置为使用RTL支持,但我遇到了问题.在RTL(从右到左)中,您需要向右滑动以显示下一页.目前,当您向右滑动时,它会显示上一个.

我相信没有多少人试图使用RTL,所以我做了(好吧,我试过至少)为问题制作描述性图像 - 在此输入图像描述

如何修复向右滑动将显示下一页而不是之前的页面?有没有办法改变滑动方向?

android android-tabs

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

如何在Android中实现自定义标签,如Instagram

我正在尝试在底部实现自定义选项卡UI,就像Instagram一样(截图已附上).我希望中间选项卡打开另一个活动,而不是在同一视图中打开一个片段. 在此输入图像描述

我觉得这是使用选项卡主机上的imagebutton overlay实现的.但是,我仍然无法正确放置该图像按钮,因此UI看起来很合适.下面是我底部标签的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
    android:id="@+id/realtabcontent"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
<android.support.v4.app.FragmentTabHost
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="0" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

请帮助.

谢谢,

android android-tabs fragment-tab-host

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

ViewPager片段第二次在导航抽屉片段内正常工作

我有Navigation Drawer一个片段Tab Viewer.在tabviewer中,我正在使用ViewPagerFragment.代码ViewPager

    viewPager = (ViewPager) rootView.findViewById(R.id.pager);
    viewPager.setAdapter(new TabsPagerAdapter(((FragmentActivity)getActivity()).getSupportFragmentManager()));

    PagerSlidingTabStrip tabsStrip = (PagerSlidingTabStrip) rootView.findViewById(R.id.tabs);
    tabsStrip.setViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)

选项卡将在导航抽屉中首次点击其内容,但第二次只有标签的标题没有其布局.布局不会到来,并且不同选项卡之间的滑动也不起作用?为什么它第一次工作而不是其余工作?我附加了两个不同点击相同导航抽屉片段的图像.这是第一次点击,所以布局完美. 在此输入图像描述

这是第二次尝试点击相同的片段,但只有背景,没有任何布局内容.

在此输入图像描述

帮助摆脱这个问题.

android android-layout android-fragments android-tabs

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

如何使用图标制作标签

我正在尝试使用选项卡和pagerview进行活动,我在博客中找到了此代码,但它并不像使选项卡具有图标而不是文本...我将代码放在:

ViewPagerAdapter.java

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

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

    public void addFrag(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}
Run Code Online (Sandbox Code Playgroud)

Tablayout_in_Android.java

public class Tablayout_in_Android extends Fragment {

    public Tablayout_in_Android() {
        // Required empty public constructor
    } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tabs

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