Articles of android tabs

布局中定义的TabHost在setContent期间给出NullPointerException

我正在尝试从Android API Demos 16修改Tabs1.java (并在API 16仿真器上运行)以使用标准Activity而不是已弃用的TabActivity类。 我已经创建了一个新的布局文件并修改了代码。 我试图使用这种方法而不是操作栏的原因是标签不适用于整个屏幕,只适用于较小的子视图。 当我执行代码时,我在执行以下行时在Android setContent方法中得到NullPointerException : tabHost.newTabSpec(“tab1”).setIndicator(“tab1”).setContent(R.id.view1) 任何想法为什么会这样? 完整堆栈跟踪是在代码和布局之后。 Tabs1VanillaActivity.java : public class Tabs1 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tabs1); TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.addTab(tabHost.newTabSpec(“tab1”) .setIndicator(“tab1”) .setContent(R.id.view1)); tabHost.addTab(tabHost.newTabSpec(“tab3”) .setIndicator(“tab2”) .setContent(R.id.view2)); tabHost.addTab(tabHost.newTabSpec(“tab3”) .setIndicator(“tab3”) .setContent(R.id.view3)); } } tabs1.xml: 堆栈跟踪: 09-18 16:18:22.968: E/AndroidRuntime(1191): FATAL EXCEPTION: main 09-18 […]

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

我已经阅读了很多示例,问题和教程,但我从未见过具有特定选项卡的活动启动(启动新意图)。 我知道可以使用.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); 现在进行另一项活动: 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? }

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

我有Navigation Drawer ,其中Tab Viewer有一个片段。 在tabviewer中,我正在使用ViewPager ,它也在Fragment 。 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); 选项卡是在导航抽屉中的第一次点击及其内容,但第二次只有标签的标题没有其布局。 布局不会到来,并且不同选项卡之间的滑动也不起作用? 为什么它第一次工作而不是其余工作? 我附加图像两个不同点击相同的导航抽屉片段。 这是第一次点击,所以布局完美。 这是第二次尝试点击相同的片段,但只有背景,没有任何布局内容。 帮助摆脱这个问题。

标签在从右到左的Android应用中滑动方向

我有一个带有标签的Android应用。 我希望应用程序从右到左。 我把清单文件中的android:supportsRtl =“true”,并将一些元素更改为android:layoutDirection =“rtl”。 它将所有内容从右向左更改,这是我想要的,除了它反转选项卡中的滑动方向 – 当您向左滑动时,它会移动到左侧选项卡,而不是与滑动相反。 我想更改它以使其成为常规滑动。 这是我的代码: 希望您能够帮助我。 谢谢!

Android TabHost已弃用

我正在创建支持Android 2.2 to Android 4.1应用程序。 deprecated in Android version 3.2 TabHost 。 但是所有versions都支持创建的应用程序。 但我想在Android 4.2运行应用程序时创建看起来像in Android 4.1 tab bar的tab bar的tab bar应用程序,如果我在android 3.2 version设备下面运行该应用程序,它必须看起来像该设备中的tab bar 。 我怎样才能做到这一点。?

使用FragmentPagerAdapter向左侧添加选项卡

这将是我对标签的最后一个问题,我保证:)(也许)所以从以前的问题和尝试和错误我有FragmentPagerAdapter调用PagerAdapter创建一些选项卡,并使我能够动态创建新选项卡。 问题是新选项卡将始终插入到现有选项卡的右侧: (图片: 我尝试了以下方法: 添加一个静态条目“null”,在创建初始选项卡集时将跳过该条目。 然后在创建“Temp Tab”时,我可以将该条目覆盖到我想要的任何片段。 给了我一些奇怪的IllegalSTateException … 我认为这将是最好的,实际上真的很想工作:而不是添加片段: private final List mFragments = new ArrayList(); public void addFragment(Fragment fragment) { mFragments.add(fragment); notifyDataSetChanged(); } 使用 mFragments.add(0, fragment); 但是它给出了一条带有消息的IllegalStateException: Can’t change tag of fragment ChatFragment 当我尝试添加临时片段时。 现在,有两个问题: 有没有办法绕过该片段选项卡,我可以暂时取走所有片段标签并重建它们全部或其他东西吗? 要么 有没有更好,更优雅的方式来做到这一点? 或者我应该重新设计我的用户界面,以便选项卡可以正确使用? :P 编辑:这里有一些代码:(我从不想向人们发布死亡之墙,因为它可能吓跑他们:o) FragmentPagerAdapter: public class PagerAdapter extends FragmentPagerAdapter { private Context mContext; public PagerAdapter(FragmentManager […]

在Chrome浏览器中为Android创建自定义tabhost

我想为浏览器之类的标签创建自定义tabhost。 我对如何将其应用于图像中的Chrome浏览器选项卡中的布局感到困惑。 这是我尝试过的。 我想知道如何用图像中的斜率创建边缘。 tab_selected.xml tab_unselected.xml 我希望可以使用XML中的Pathshape来完成。 任何人都可以指出我的参考? 无法在PathShape上find引用

在dispatchCreateOptionsMenu期间旋转时出现NullPointerException,堆栈跟踪不包括我的应用程序中的任何函数

我有一个应用程序,它使用ICS中操作栏上的选项卡,其中每个选项卡中都有一个片段。 在某些情况下,在我按下操作栏上选项菜单上的按钮后,然后旋转设备,我得到一个NullPointerException。 我可以使用相同的步骤可靠地重现它,但在某些情况下(如果我不按动作栏上的任何按钮)不会产生exception。 该exception似乎没有引用我的代码中的任何行,并且在方向更改后重新创建活动期间发生。 这是例外: 09-18 20:56:22.357: E/AndroidRuntime(689): FATAL EXCEPTION: main 09-18 20:56:22.357: E/AndroidRuntime(689): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andavapps.flightbot/com.andavapps.flightbot.FlightBotActivity}: java.lang.NullPointerException 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3351) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread.access$700(ActivityThread.java:123) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151) 09-18 20:56:22.357: E/AndroidRuntime(689): at android.os.Handler.dispatchMessage(Handler.java:99) 09-18 20:56:22.357: E/AndroidRuntime(689): at […]

更改选项卡中的线条颜色 – ActionBarSherlock

我正在使用ActionBarSherlock使我的应用程序与旧设备兼容。 实现很简单,但现在我需要将您在标签下看到的默认Holo蓝线设置为红线。 我一直在阅读SO上的一些主题( 主题1 , 主题2 )以及ABS文档( 链接 ),但我无法让它发挥作用。 这就是我到目前为止所拥有的。 在我的AndroidManifest.xml中,我将此行添加到application标记中。 然后在res/values/styles.xml我有: @style/Widget.MyTheme.ActionBar @style/Widget.MyTheme.ActionBar #ff000000 #ff000000 但是当我运行我的应用程序时,我仍然看到默认的蓝线颜色。 我究竟做错了什么? 编辑 如果您想完全设计ActionBarSherlock样式,请阅读此内容! 我在SO上find了一个答案,它提供了以下链接: http : //jgilfelt.github.com/android-actionbarstylegenerator 它是一个简单的发电机,可为完全定制的ABS生成所有需要的文件! 您所要做的就是将生成的文件复制到适当的文件夹中,然后进行设置! 不要忘记在AndroidManifest中启用样式(您必须在生成器中输入样式名称 )。 为此,请参阅下面的答案。

Android L预览素材样式选项卡

在新的设计指南 (向下滚动到底部)中,您可以看到标签在新材料设计中的外观。 然而TabHost仍然看起来非常Holo给我,没有底线animation,没有涟漪效果。 这是我们必须自己实现的吗?