我有一个针对1.5框架的应用程序,并使用默认的灯光主题.使用具有此主题的选项卡窗口小部件时,选项卡图像几乎不可见,除了当前活动的选项卡之外,很难识别选项卡标题.
在默认的黑暗主题中,这些标签非常清晰,但这不是我非常满意的解决方案.我可以设置一个简单的设置,设置标签小部件以便在灯光主题中获得更好的可见性,还是我必须手动篡改图像和文本样式?
我想知道是否可以在本机TabWidget上应用ActionBarSherlock(v4.2.0)TabWidget主题?因此它会在ICS前机器人上看起来像Holo.如果你知道如何 - 请分享.
我发现的只有:https://gist.github.com/1126843但它似乎不再起作用了.
标准xml布局:
<?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" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我是徽章概念的新手.在我的应用程序中,我想在一个选项卡上显示徽章.为此,我使用android-viewbadger.jar文件Android ViewBadger, 它正常工作4个标签,
TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs);
badge1 = new BadgeView(this, tabs, 1);
badge1.setText("155");
badge1.setBadgePosition(BadgeView.POSITION_BOTTOM_RIGHT);
badge1.toggle();
Run Code Online (Sandbox Code Playgroud)

当我在这里添加一个标签时,它看起来像这样

我已经使用这些徽章属性
badge1.setPadding(left, top, right, bottom);
badge1.setTextSize(15);
badge1.setBadgeMargin(5,5);
badge1.setWidth(10);
Run Code Online (Sandbox Code Playgroud) 我有一个TabActivity带有四个选项卡(每个选项卡都有自己的活动).每个选项卡都定义了自己的onCreateOptionsMenu(在某些情况下onPrepareOptionsMenu).加载每个选项卡时,将AsyncTask启动a以检索填充该选项卡列表所需的数据.
如果我非常快速地切换选项卡(当它们仍在加载时),然后按菜单按钮(当前选项卡AsyncApiTask仍在运行时),我将能够显示错误的选项菜单.
例如,假设FooActivity(标签1)有一个带有"刷新"项目的选项菜单,BarActivity(标签2)有一个带有"查看全部"项目的选项菜单.如果我启动应用程序(标签1处于活动状态),快速切换到标签2,然后点击菜单,有时会显示"刷新"项目(而不是预期的"查看全部"项目).
此外,虽然这种奇怪的行为有时会出现在第一个菜单按下(后来按下显示正确的项目),有时它会"卡住",并且每次按下时都会显示错误的项目,直到我切换标签.
知道会发生什么吗?我以前没有听说过这种情况,也未能找到任何好的建议.
android tabwidget options-menu android-tabhost android-asynctask
我的雇主让我在一个具有非常特定UI要求的Android应用程序上工作.具体来说,我们需要一个看起来与TabWidget接口完全相同的界面.但是,左侧的标签是绝对必须的.我们不打算将此应用程序部署到任何Android手机,它用于内部设备,因此没有任何问题违反Android平台可能具有的任何设计考虑因素.
我们已经有了一个工作原型,它使用焦点监听器和列表视图的组合来破解我们需要的功能.它不漂亮,我们对它还不是很有信心,但它暂时有用.
我们真正喜欢的是抛弃我们的所有原型UI代码,以换取使用内置的TabWidget.但是,由于TabWidget硬编码仅适用于顶部的选项卡,因此这不是一个真正的选项.
那么,我们希望有人在那里有一个补丁,或一组补丁,或者可能是一个自定义类,用侧面的选项卡处理TabWidget功能呢?
TabWidget的相关代码位于:http://www.google.com/codesearch/p? hl = en#uX1GffpyOZk/core/java/android/widget/TabWidget.java&q = android%20package:git:adminand .git.kernel.org%20lang:JAVA%20tabwidget&SA = N和CD = 1&CT = RC
以及在顶部显示标签的硬编码的特定功能是
private void initTabWidget() {
setOrientation(LinearLayout.HORIZONTAL);
mGroupFlags |= FLAG_USE_CHILD_DRAWING_ORDER;
final Context context = mContext;
final Resources resources = context.getResources();
if (context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.DONUT) {
// Donut apps get old color scheme
if (mLeftStrip == null) {
mLeftStrip = resources.getDrawable(
com.android.internal.R.drawable.tab_bottom_left_v4);
}
if (mRightStrip == null) {
mRightStrip = resources.getDrawable(
com.android.internal.R.drawable.tab_bottom_right_v4);
}
} else {
// Use modern color scheme for …Run Code Online (Sandbox Code Playgroud) 在花了两天时间寻找答案后,我想就以下行为寻求帮助.
我正在尝试在Android上编写一个简单的tabhost应用程序,每个活动都有一个布局.我设计了我的布局,以便tabwidget出现在屏幕的底部.
在第一个选项卡上,我正在尝试插入一个简单的2行ListView.我的问题是ListView位于底部,但其中一半隐藏在tabwidget后面.我想了解如何使我的ListView显示在tabwidget上方.
这是我的main.xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
<TabWidget
android:id="@android:id/tabs"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)
这是我的主要app类:
public class TestTabWidget extends TabActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
intent = new …Run Code Online (Sandbox Code Playgroud) 我正在使用TabLayout,我有自定义图像用于我正在使用的选项卡,但对于我的生活,我无法弄清楚如何更改选项卡和选项卡内容之间的分隔符的颜色甚至图像.我试图使用setDividerDrawable(),但是在我设置选项卡内容之前调用它时会崩溃,而在我之后调用它时什么都不做.如果我能把它变成黑色就足够了,但到目前为止还没有任何效果.谢谢你的指导.
在我的应用程序中有tabBar和Edittext.
见下图:
正常屏幕:

和图像按下edittext后:

现在为什么这个tabbar与键盘一起上升.即使用户按下edittext打开键盘,我希望它仍然保持在底部.
那我该怎么办呢?
请帮帮忙吗?
我的TabBarMain活动的xml布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:id="@+id/LL1"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="0"/>
</LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)
所以请帮助我.
谢谢.
如何让我的标签按钮看起来像 
如果我在那个形状上有一个可绘制的,那么最简单的方法是什么?
我想通过用我自己的风格替换样式来自定义选项卡小部件.我要替换的项目如下:
<item name="android:tabLayout">@android:layout/tab_indicator_holo</item>
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:找不到与给定名称匹配的资源:attr'android:tabLayout'
我已经设置了这样的父样式:
<style name="customTabWidget" parent="@android:style/Widget.Holo.TabWidget">
Run Code Online (Sandbox Code Playgroud)
项目构建目标:Android 4.0
我也清理了项目,但错误仍然存在.如何修复错误?
提前致谢.