标签: android-tabs

使用TabWidget.setDividerDrawable()?

有人有过任何成功TabWidget.setDivider()吗?我不确定它是否符合我的假设:让您有机会在每个标签实例之间提供一个drawable?

mTabHost.getTabWidget().setDividerDrawable(R.drawable.dividerDrawable);
Run Code Online (Sandbox Code Playgroud)

这似乎没有做任何事情.查看android项目中的选项卡可绘制资源显示分隔符实际上被绘制到选项卡图像本身 - 这应该工作还是不支持?

android android-tabhost android-tabs

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

在fragmentTab之间切换会产生意外结果

我试图在http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html中将FragmentTabs实现为illiustrated .一切顺利,直到我这样做:

我从一个标签开始了许多不同的片段,如:

TAB1 - >片段1 ---> fragment2 ---> fragment3

TAB2

但是当我切换到tab2并再次回到tab1时,我得到的是fragment1屏幕而不是fragment3(即我在第一个标签中有3个片段,而我在第3个片段上,在切换到第二个标签后我再来到第一个标签上,我是被带到第一个片段而不是第三个)..任何人都可以告诉可能是什么概率?

        @Override
        public void onTabChanged(String tabId) {
            TabInfo newTab = mTabs.get(tabId);
            if (mLastTab != newTab) {
                FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();
                if (mLastTab != null) {
                    if (mLastTab.fragment != null) {
                        ft.detach(mLastTab.fragment);
                    }
                }
                if (newTab != null) {
                    if (newTab.fragment == null) {
                        newTab.fragment = Fragment.instantiate(mActivity,
                                newTab.clss.getName(), newTab.args);
                        ft.add(mContainerId, newTab.fragment, newTab.tag);
                    } else {
                        ft.attach(newTab.fragment);
                    }
                }

                mLastTab = newTab;
                ft.commit();
                mActivity.getSupportFragmentManager().executePendingTransactions();
            }
        }
Run Code Online (Sandbox Code Playgroud)

当我评论attach()和detatch()时,我得到了这个:

在此输入图像描述

android android-tabhost android-fragments android-tabs

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

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

我正在尝试修改Tabs1.javaAndroid API演示16(并在API 16仿真器上运行)以使用标准Activity而不是已弃用的TabActivity类.我已经创建了一个新的布局文件并修改了代码.

我试图使用这种方法而不是操作栏的原因是标签不适用于整个屏幕,只适用于较小的子视图.

当我执行代码时,我在执行以下行时获得了NullPointerExceptionAndroid setContent方法内部:

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));
    }
}
Run Code Online (Sandbox Code Playgroud)

tabs1.xml:

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView goes here!"
        tools:ignore="HardcodedText" />

    <TabHost
        android:id="@+id/tabhost"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

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

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

            <FrameLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

tabs android android-tabhost android-tabs

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

选项卡中的谷歌地图v2出错(片段中的MapFragment)

我有一个fragmentActivity,我在其中构建了一个tabHost,并且在每个选项卡中都有一个Fragment.好吧,我有四个标签3的信息和一个片段,其中包括一个谷歌地图-V2(片段中的片段MAp因为我想添加按钮等),当我选择一个标签并传递给其他一切顺利,但是当我选择地图选项卡时,在其他选项卡之后再次选择地图选项卡时会抛出错误.

我的观点似乎是:

|__||__|__|__|
| __________ |
|| FRAGMENT ||
||_____   _ ||
|| FRAG| |_|||
|| MAP |    ||
||     |    ||
||_____|    ||
||__________||
Run Code Online (Sandbox Code Playgroud)

错误:

01-29 08:32:56.979: E/AndroidRuntime(27738): FATAL EXCEPTION: main
01-29 08:32:56.979: E/AndroidRuntime(27738): android.view.InflateException: Binary XML file line #11: Error inflating class fragment
01-29 08:32:56.979: E/AndroidRuntime(27738):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587)
01-29 08:32:56.979: E/AndroidRuntime(27738):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
01-29 08:32:56.979: E/AndroidRuntime(27738):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
01-29 08:32:56.979: E/AndroidRuntime(27738):    at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
01-29 08:32:56.979: E/AndroidRuntime(27738):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
01-29 08:32:56.979: E/AndroidRuntime(27738):    at com.monumentos.vistasmovil.MonumentoMapa.onCreateView(MonumentoMapa.java:127)
01-29 08:32:56.979: E/AndroidRuntime(27738):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) …
Run Code Online (Sandbox Code Playgroud)

android-tabhost android-tabs google-maps-android-api-2 android-maps-v2

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

类铸造的任何替代方法

以下语句未在某些设备上执行.

AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();
Run Code Online (Sandbox Code Playgroud)

上述陈述是否有其他替代方法.在某些设备上它工作正常,但在其他设备上它提供异常.

单击此处...黄色文本显示异常

编辑:我的应用程序是在标签中开发的.OnActivity结果用于从相机活动中获取图片.不知道居住在哪里但是当我在try catch中放入上述语句时,不会发生强制关闭并且在那里显示异常.

android classcastexception devise android-tabhost android-tabs

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

在Fragment onCreateView,onCreate或onActivityCreated中发出HTTP请求?

我在我的应用程序中使用导航选项卡.我有3个片段从Internet上加载不同的数据.我想知道在哪里放置发出HTTP请求的代码的最佳位置onCreate,onCreateView或者onActivityCreated

通常,我将所有代码(请求数据,填充适配器,膨胀视图...)放入onCreateView.我也看到很多人在互联网上这样做.

但是这个指南https://github.com/thecodepath/android_guides/wiki/Creating-and-Using-Fragments以不同的方式做事.所以我想确定要做什么.

android android-fragments android-viewpager android-tabs

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

如何在FragmentPagerAdapter上以编程方式更改片段?

我已经使用Eclipse默认的ViewPager应用程序参数创建了应用程序.主要活动包含2个选项卡(tabA和tabB).每个标签指的是其片段(fragmentA和fragmentB).

public class SectionsPagerAdapter extends FragmentPagerAdapter {

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

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            return new Cars();
        case 1:
            // Games fragment activity
            return new News();
        }
        return null;
    }

    @Override
    public int getCount() {
        // Show 2 total pages.
        return 2;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
        case 0:
            return getString(R.string.title_section1).toUpperCase(l);
        case 1:
            return getString(R.string.title_section2).toUpperCase(l);
        } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragmentpageradapter android-tabs android-listfragment

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

如何在片段中启用操作栏选项卡?

我从Activity切换到Fragment,现在我收到了这个错误

java.lang.IllegalArgumentException:此配置中不支持选项卡

从以下行

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Run Code Online (Sandbox Code Playgroud)

如何使这些选项卡在基于ActionBarActivity的片段中工作?

其余的代码

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


        act = (ActionBarActivity )getActivity();

        final ActionBar actionBar = act.getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        mViewPager = (ViewPager) inflater.inflate(R.layout.activity_saved, container, false);

        mSectionsPagerAdapter = new SectionsPagerAdapter(
                getFragmentManager());

        mViewPager.setAdapter(mSectionsPagerAdapter);

        mViewPager
                .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                    @Override
                    public void onPageSelected(int position) {
                        actionBar.setSelectedNavigationItem(position);
                    }
                });

        for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {

            actionBar.addTab(actionBar.newTab()
                    .setText(mSectionsPagerAdapter.getPageTitle(i))
                    .setTabListener(SavedActivity.this));
        }


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

堆栈跟踪

 java.lang.IllegalArgumentException: Tabs not supported in this configuration
at android.support.v7.internal.app.ToolbarActionBar.setNavigationMode(ToolbarActionBar.java:325)
at …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager android-tabs

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

选中时,在TabLayout中的Tab上更改图像

我正在使用Design TabLayout,

<android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabBackground="@color/ColorPrimary"
            app:tabIndicatorColor="@color/orange"
            app:tabIndicatorHeight="3dp"
            />
Run Code Online (Sandbox Code Playgroud)

我已经在Tabs中添加了customview

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@null">

    <ImageView
        android:id="@+id/imgTab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/tab_image"
        android:layout_centerHorizontal="true"
        android:focusable="true"
        android:focusableInTouchMode="true"/>

    <TextView
        android:id="@+id/tabTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/imgTab"
        android:text="Home"
        android:background="@null"
        android:layout_centerHorizontal="true"
        android:textColor="@color/selector_tab_text"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

tab.setCustomView(视图);

我想在选择Tab时在自定义视图中更改图像.在imageview上使用Selector尝试它不起作用.我无法在运行时将视图分配给Tab,它只包含setCustomView方法.怎么实现呢?

android android-tablelayout android-tabs

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

Android将ArrayList &lt;Model&gt;传递给Activity中的片段

嗨,我想将数据发送ArrayList<Division>到Fragment类ListContentFragment

MainActivity我进行网络调用以获取data(JSON),然后对其进行解析以创建ArrayList<Division>,现在我想用接收到的数据填充列表视图(现在在ArrayList<Division>

主要活动

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Adding Toolbar to Main screen
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        // Setting ViewPager for each Tabs
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);
        // Set Tabs inside Toolbar
        TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
        tabs.setupWithViewPager(viewPager);
        // Create Navigation drawer and inlfate layout
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer);
        // Adding menu icon to Toolbar
        ActionBar …
Run Code Online (Sandbox Code Playgroud)

java android arraylist android-fragments android-tabs

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