我们经常遇到对actionBarTab 进行操作的情况。现在记录修改它的样式的方法,已经如何自定义tab的显示布局

1.在你的theme主题中添加<item name="android:actionBarTabStyle">@style/backupActionBarTabView</item>

<resources>

    <style name="BackupRestore.Theme" parent="@android:style/Theme.Funui">
<item name="android:windowFullscreen">true</item>
<item name="android:actionBarStyle">@style/actionbar_def_style</item>
<item name="android:actionBarTabStyle">@style/backupActionBarTabView</item>
<item name="android:actionBarTabTextStyle">@style/customActionBarTabTextStyle</item>
<item name="android:actionModeStyle">@style/actionmode_def_style</item>
</style>
<style name="customActionBarTabTextStyle">
<item name="android:textColor">@color/action_bar_title_text_color</item>
<item name="android:textSize">@dimen/action_bar_title_text_size</item>
<item name="android:paddingStart">@dimen/action_bar_title_text_size</item>
</style>
<style name="backupActionBarTabView" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
<item name="android:background">#04cd74</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:paddingStart">66dip</item>
</style> </resources>

2.在<style name="backupActionBarTabView" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">中定义相关属性

1)<item name="android:paddingStart">66dip</item>这个可以更改标题的位置,但是,它永远相对的都是 自己框内的位置,例如,如果你有两个标题,那么你的第一个标题就会距离左边屏幕66dip,第二个标题就会距离中间分割位置66dip,<item name="android:paddingEnd">66dip</item>属性跟这个类似

2)其实<item name="android:actionBarTabTextStyle"> @style/customActionBarTabTextStyle</item>也可以调节标题的位置,只不过它调节的是text相对 于框的位置<item name="android:paddingStart">@dimen/action_bar_title_text_size</item>

不过,这两个用起来非常的不方便,至于怎么让两个标题都往中间靠拢的方法,我们可以自定于布局

2)自定义tab显示内容布局

1.定义各自的mxl文件,如backup_tab.xml这里仅仅需要一个textview就行了

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent" >
<TextView
android:layout_alignParentLeft="true"
android:text="@string/set_label_local_albums"
android:layout_height="wrap_content"
<!--如果设置为wrap_content就不行--> android:layout_width="match_parent"
android:paddingTop="33dp"
android:paddingLeft="21dp"
android:textColor="@color/action_bar_title_text_color"
android:textSize="@dimen/action_bar_title_text_size" />
</RelativeLayout>

2.在代码中引用

private void setupActionBar(Bundle state) {

        ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); Tab tab = actionBar.newTab();
/* Vanzo:zhangshuli on: Thu, 15 Jan 2015 10:37:32 +0000
tab.setText(R.string.backup);
*/
tab.setCustomView(R.layout.backup_tab);
// End of Vanzo: zhangshuli
tab.setTabListener(new TabListener(mBackupFragment, Constants.BACKUP));
actionBar.addTab(tab); tab = actionBar.newTab();
/* Vanzo:zhangshuli on: Thu, 15 Jan 2015 10:38:05 +0000
tab.setText(R.string.restore);
*/
tab.setCustomView(R.layout.restore_tab);//资源的引用,直接是引用layout就可以了
// End of Vanzo: zhangshuli
tab.setTabListener(new TabListener(mRestoreFragment, Constants.RESTORE));
actionBar.addTab(tab); if(state != null){
int position = state.getInt(STATE_TAB, 0);
if(position != 0){
actionBar.setSelectedNavigationItem(position);
}
}
}

但是,刚开始在更改actionBarTab的时候,遇到了一件非常奇怪的事情,就是当我自定义一个布局的时候(如上),无论我怎么调节,textview总是距离中间有一段位置,虽然我设置了Relativelayout是充满父容器的。通过hierarchy看布局,你会发现Relativelayout跟textview的宽度是一样的。后来怎么试验都不行.

后来我就想,既然他们两个都是一样的,那么如果我分别强制性的设置这两个控件的宽度不一样呢。然后,我就设置了两个宽度分别为178dp结果真的生效了。至此得出一个结论,就是textview决定了一切,必须把两个控件的宽度都设置为match_parent,完美实现了效果

actionBarTab-actionBarTab自定义 布局没法改变其中字体相对中间的位置的更多相关文章

  1. 自定义TextView 调用ttf格式字体

    自定义TextView 调用ttf格式字体 1.<strong>将ttf格式文件存放在assets/fonts/下</strong> 注:PC系统字体存放在C:\Windows ...

  2. C#Winform使用扩展方法自定义富文本框(RichTextBox)字体颜色

    在利用C#开发Winform应用程序的时候,我们有可能使用RichTextBox来实现实时显示应用程序日志的功能,日志又分为:一般消息,警告提示 和错误等类别.为了更好地区分不同类型的日志,我们需要使 ...

  3. OC - 31.通过封装的自定义布局快速实现商品展示

    概述 实现效果 设计思路 采用MVC架构,即模型—视图-控制器架构 使用MJExtension框架实现字典转模型 使用MJRefresh框架实现上拉和下拉刷新 上拉刷新,加载新的数据 下拉刷新,加载更 ...

  4. OC - 29.自定义布局实现瀑布流

    概述 瀑布流是电商应用展示商品通常采用的一种方式,如图示例 瀑布流的实现方式,通常有以下几种 通过UITableView实现(不常用) 通过UIScrollView实现(工作量较大) 通过UIColl ...

  5. Xamarin自定义布局系列——瀑布流布局

    Xamarin.Forms以Xamarin.Android和Xamarin.iOS等为基础,自己实现了一整套比较完整的UI框架,包含了绝大多数常用的控件,如下图 虽然XF(Xamarin.Forms简 ...

  6. Xamarin自定义布局系列——ListView的一个自定义实现ItemsControl(横向列表)

    在以前写UWP程序的时候,了解到在ListView或者ListBox这类的列表空间中,有一个叫做ItemsPannel的属性,它是所有列表中子元素实际的容器,如果要让列表进行横向排列,只需要在Xaml ...

  7. Xamarin自定义布局系列——支持无限滚动的自动轮播视图CarouselView

    背景简述 自动轮播视图(CarouselView)在现在App中的地位不言而喻,绝大多数的App中都有类似的视图,无论是WebApp还是Native App.在安卓.iOS以及Windows(UWP) ...

  8. android dialog使用自定义布局 设置窗体大小位置

    AlertDialog.Builder builder = new Builder(mContext); builder.setTitle("更新进度"); final Layou ...

  9. 【转】C# 控件的自定义拖动、改变大小方法

    在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Wind ...

随机推荐

  1. HDU 4960 Another OCD Patient 简单DP

    思路: 因为是对称的,所以如果两段是对称的,那么一段的前缀和一定等于另一段的后缀和.根据这个性质,我们可以预处理出这个数列的对称点对.然后最后一个对称段是从哪里开始的,做n^2的DP就可以了. 代码: ...

  2. HN0I2000最优乘车 (最短路变形)

    HN0I2000最优乘车 (最短路变形) 版权声明:本篇随笔版权归作者YJSheep(www.cnblogs.com/yangyaojia)所有,转载请保留原地址! [试题]为了简化城市公共汽车收费系 ...

  3. 洛谷 P1898 缘分计算

    P1898 缘分计算 题目描述 缘分是一个外国人难以理解的中文名词.大致说来,缘分是一种冥冥中将两人(通常是情人)结合的力量.仅管这是种迷信,很多人——特别是女生——喜欢去计算它. 不幸的是,644 ...

  4. Android 使用DrawerLayout高速实现側滑菜单

    一.概述 DrawerLayout是一个能够方便的实现Android側滑菜单的组件,我近期开发的项目中也有一个側滑菜单的功能.于是DrawerLayout就派上用场了.假设你从未使用过DrawerLa ...

  5. Codeforces Round #105 (Div. 2) 148C Terse princess(脑洞)

    C. Terse princess time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  6. Unix网络编程之环境搭建

    环境搭建 在尝试UNP书上的样例时,会由于找不到"unp.h"等问题无法编译成功.因此在学习之前须要先搭建好编译环境. 步骤 <1>下载  UNIX网络编程源码unpv ...

  7. 记一次struts2漏洞修复带来的问题

    struts2作为万年漏洞王,感觉已经被弃如敝屣了,除了一些古老的项目,比如我手上的一个项目,以前每次出现漏洞就如临大敌,手忙脚乱的赶在公司红头文件发出来前修复它.然后改了一两次后毅然决然用别的框架代 ...

  8. 罗列几个Android插件化开发框架

    携程插件化框架 ACDD插件化框架 360插件化框架 Android-Plugin-Framework DL APK动态加载框架 部分框架对比 DynamicLoadApk 迁移成本很重:需要使用『t ...

  9. 123.static静态函数和函数模板

    #include <iostream> using namespace std; //static成员,每个类型都会实例化,创建一个变量,类型一致则共享,否则不共享 template &l ...

  10. HDU 4349 Xiao Ming's Hope 组合数学

    题意:给你n,问在C(n,1),C(n,2)...C(n,n)中有多少个奇数. 比赛的时候打表看出规律,这里给一个数学上的说明. Lucas定理:A,B非负整数,p是质数,A,B化为p进制分别为a[n ...