仿新浪微博2014之主界面二(自定义标题栏)

2024-03-15 05:40

本文主要是介绍仿新浪微博2014之主界面二(自定义标题栏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

为了实现标题栏的个性化,我们经常要根据不同的界面自定义自己的标题栏,首先我们需要在activity或者fragment的oncreate函数中setContentView之前添加

              requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView之后添加

               getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_more);

 

由于我们要根据不同的fragment设置不同的标题栏,requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);放在TabHostActivity的oncreate中,

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_more);放在fragment的oncreate中。

代码如下:

 

package com.xhq.xweibo.ui;import com.xhq.xweibo.R;
import com.xhq.xweibo.R.layout;
import com.xhq.xweibo.R.menu;import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;public class TabMoreFragment extends Fragment
{private static final String TAG = "TabMoreFragment";private Activity mActivity;private View mTitleView;public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Log.d(TAG, "onCreate");mActivity = this.getActivity();mActivity.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_more);mTitleView = mActivity.findViewById(R.id.title_more);mTitleView.setVisibility(View.GONE);}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState){super.onViewCreated(view, savedInstanceState);Log.d(TAG, "onViewCreated");mTitleView.setVisibility(View.VISIBLE);}@Overridepublic void onDestroyView(){super.onDestroyView();Log.d(TAG, "onDestroyView");mTitleView.setVisibility(View.GONE);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){return inflater.inflate(R.layout.fragment_tab_more, null);}}

我们要在fragment的onViewCreated中把自定义的标题栏布局显示出来,在onDestroyView中把标题布局隐藏起来,如果不隐藏起来的话多个标题栏布局就会重叠在一起了。

这样我们就显示了自定义的标题栏了,但是这样还不够,因为我们还无法调整标题栏的高度和背景。

 

我们还要自定义标题栏的高度和背景,我们要写两个风格

<style name= "CustomWindowTitleBackground"><item name="android:background">@drawable/title_bg</item></style><style  name="tabhost" parent="android:Theme"><item name="android:windowTitleSize">40dp</item><item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item></style>

然后再manifest中activity作如下设置

<activityandroid:name="com.xhq.xweibo.ui.TabHostActivity"android:theme="@style/tabhost"android:label="@string/title_activity_tab_host" ></activity>

把主体theme设为我们自定义的主题。这样我们就完成了自定义标题栏。效果图如下:

   

这篇关于仿新浪微博2014之主界面二(自定义标题栏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810976

相关文章

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各