有人有过任何成功TabWidget.setDivider()吗?我不确定它是否符合我的假设:让您有机会在每个标签实例之间提供一个drawable?
mTabHost.getTabWidget().setDividerDrawable(R.drawable.dividerDrawable);
Run Code Online (Sandbox Code Playgroud)
这似乎没有做任何事情.查看android项目中的选项卡可绘制资源显示分隔符实际上被绘制到选项卡图像本身 - 这应该工作还是不支持?
我试图在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()时,我得到了这个:

我正在尝试修改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) 我有一个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
以下语句未在某些设备上执行.
AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();
Run Code Online (Sandbox Code Playgroud)
上述陈述是否有其他替代方法.在某些设备上它工作正常,但在其他设备上它提供异常.

编辑:我的应用程序是在标签中开发的.OnActivity结果用于从相机活动中获取图片.不知道居住在哪里但是当我在try catch中放入上述语句时,不会发生强制关闭并且在那里显示异常.
android classcastexception devise android-tabhost android-tabs
我在我的应用程序中使用导航选项卡.我有3个片段从Internet上加载不同的数据.我想知道在哪里放置发出HTTP请求的代码的最佳位置onCreate,onCreateView或者onActivityCreated?
通常,我将所有代码(请求数据,填充适配器,膨胀视图...)放入onCreateView.我也看到很多人在互联网上这样做.
但是这个指南https://github.com/thecodepath/android_guides/wiki/Creating-and-Using-Fragments以不同的方式做事.所以我想确定要做什么.
我已经使用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
我从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
我正在使用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方法.怎么实现呢?
嗨,我想将数据发送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)