- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我创建标签主机的方法,我想做的是在用户单击标签时获取标签。问题是,它返回 null 而不是标签值。
tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
tabHost.addTab(
tabHost.newTabSpec("home").setIndicator("",
getResources().getDrawable(R.drawable.meun_home)),
HomeFragment.class, null);
tabHost.addTab(
tabHost.newTabSpec("form").setIndicator("",
getResources().getDrawable(R.drawable.meun_register)),
FormFragment.class, null);
tabHost.addTab(
tabHost.newTabSpec("calculator").setIndicator("",
getResources().getDrawable(R.drawable.meun_calculator)),
CalculatorFragment.class, null);
tabHost.addTab(
tabHost.newTabSpec("news").setIndicator("",
getResources().getDrawable(R.drawable.meun_call)),
HomeFragment.class, null);
tabHost.getTabWidget().setDividerDrawable(
getResources().getDrawable(R.drawable.border));
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(getResources().getColor(android.R.color.transparent));
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.MATCH_PARENT, 1f);
tabHost.getTabWidget().getChildAt(i).setLayoutParams(params);
tabHost.getTabWidget().getChildAt(i).setPadding(0, 0, 0, 0);
tabHost.getTabWidget().getChildAt(i).setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_UP) {
Log.d("test1",""+v.getTag());
return true; // doesnt allow tab change
}
return false;
}
});
}
您可以找到返回 null 的行 Log.d("test1",""+v.getTag());
。预期会返回一些字符串,如“home”、“form”等......非常感谢
最佳答案
因为您没有为 newTabSpec 的View 设置任何标签。您设置了可绘制图标,但没有设置任何标签。所以你可以通过两种方式做到这一点:
1) 首先从您的可绘制图标创建一个imageView:
imageView.setImageBitmap(bitmap);
imageView.setImageResource(R.drawable.my_image);
imageView.setImageDrawable(drawable);
然后将 Tag 设置为您的 imageView 并使用 setIndicator(View view)
将其添加到您的 newTabSpec.
2) 或者在添加可绘制对象后,您可以使用getChildTabViewAt() 获取 View ,然后为其设置标签。
总而言之,您没有设置任何标签,因此它显然是空的。
文档说:
TabHost.TabSpec:
A tab has a tab indicator, content, and a tag that is used to keep track of it. This builder helps choose among these options. For the tab indicator, your choices are: 1) set a label 2) set a label and an icon For the tab content,
所以字符串只是一个标签,tag
和标签是两个不同的东西,tag
是你对 view
的内存可以在其中存储任何对象
,该对象可以是字符串
或任何其他用于创建 ListView 的ViewHolder设计模式。
关于android - 当我获取选项卡的标签时,FragmentTabHost 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970477/
我已经实现了 FragmentTabHost,但我的 Fragment 超出了 tabhost。这是我的 Activity : public class MainActivity extends Ac
我在一个 FragmentActivity 中使用了一个 FragmentTabHost,它有 3 个选项卡。 如果我从每个选项卡的第一页更改选项卡,它工作正常,但如果我在一个选项卡内导航抛出片段然后
问题: 我正在尝试创建两个包含 Fragments 和 FragmentTabHost 的选项卡。 我在此处将选项卡添加到 FragmentTabHost(包含选项卡的 FragmentActivit
我在程序中使用 FragmentTabHost 显示子 fragment ( fragment 中的 fragment )时遇到问题。选项卡主机显示完美,但其内容未显示... 首先介绍类: 订单.ja
这是我的 activity_main.xml 布局,它包含两个选项卡。选定的选项卡内容根本没有显示。我哪里错了?如果我在下面的布局中交换 FragmentTabHost 和 Framelayout 的
我已经使用支持包中的 FragmentTabHost 实现了选项卡,但未显示可绘制图标? 如何使用 FragmentTabHost 显示可绘制图标? mTabs = (FragmentTabHost)
我正在尝试删除 android.support.v4.app.Fragment TabHost 上选项卡下方的蓝线和蓝色背景(选择选项卡时)。有人这样做过吗? 发送 最佳答案 我认为您必须自定义选项卡
我正在为我的一个项目使用 FragmentTabHost。 我的应用程序中有 5 个以上的标签页。 如果我使用一个或两个选项卡意味着 TabHost 看起来不错。 如果我添加超过 5 个标签,标签主机
我为 FragmentTabHost 使用了 v4 支持库 要求是当我将标签页切换到另一个标签页和另一个标签页时,即调用 onCreateView() & onActivityCreated() 每次
我正在使用带有多个选项卡的 FragmentTabHost(构造如图 here 所示)。但是,我无法使用 getFragmentByTag(在这种情况下返回 null)随机寻址我的选项卡,除非已通过至
简单的 android.support.v4.app.FragmentTabHost 的图形布局永远不会在 Eclipse 或 Android Studio 中呈现。 我得到的控制台错误是一致的: 渲
几天前,我在 Fragment 中使用 NavigationDrawer 实现了 TabHostFramgent,我遇到了以下错误: java.lang.IllegalStateException:
我正在开发一个带有选项卡的 Android 应用程序 (FragmentTabHost)。我有一个带有 6 个选项卡的 FragmentActivity。目前,选项卡的名称显示为进行行跳转。我希望所有
我试过下面的代码。将框架布局对齐到选项卡小部件上方,但它仍然不起作用 编辑我正在使用 Fragme
我正在 visual studio 中使用 xamarin.android 开发一个应用程序,我正在尝试在我的应用程序的按钮上添加选项卡 这是我的代码 protected override void
我已经尝试了几个链接来删除 FragmentTabHost 中的选定选项卡,但对我不起作用。 First link Second link 我也在我的 Xml 中尝试过,但它不起作用 android:
好的,这就是我在错过图书馆时看到的: import android.support.v4.app.FragmentTabHost; 我在哪里可以找到它以及我需要如何将这个库添加到我的项目中? 感谢任何
所以我正在开发一个应用程序,直到现在,我一直在使用带有两个 Activity 的普通选项卡布局。现在有人告诉我,使用 FragmentTabHost 会更好。所以我一直在阅读一些 docs这是我到目前
这两天我一直在为一个简单的用户界面而苦苦挣扎。我只想要底部带有选项卡的选项卡式布局(由于这个原因不能使用 Tabs ActionBarSherlock)。我还希望我的选项卡由图标和文本表示。很简单?我
我有两个使用 FragmentTabHost 的 fragment 的选项卡式布局。在选项卡选择中,每个 fragment 都会重新创建(onCreateView、onActivityCreated.
我是一名优秀的程序员,十分优秀!