Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 913|回复: 0

Android—自定义标题栏的实现及遇见的问题解决

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 803 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726482
    发表于 2021-9-6 16:49:45 | 显示全部楼层 |阅读模式

    开发者设计界面时候往往不会使用系统自带的标题栏,因为不美观,所以需要自己设置标题栏。

    1.根据需求在xml文件中设置标题布局

    <?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="match_parent"
        android:background="#1e9ee1" >
    
        <TextView
            android:id="@+id/tv_titlename"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="标题"
            android:textColor="#fff"
            android:textSize="18sp" />
    
        <Button
            android:id="@+id/brn_search_back"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_alignBottom="@+id/tv_titlename"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="16dp"
            android:background="@drawable/mreturn" />
    
        <ImageView
            android:id="@+id/iv_basetitlewring"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/tv_titlename"
            android:layout_marginRight="16dp"
            android:background="#0000" />
    
    </RelativeLayout>

    2.在values的styles中将以上标题设置成自己的style

     <style name="CustomTheme" parent="AppBaseTheme">
            <item name="android:windowTitleSize">48dip</item>
        </style>

    3.在醒目清单文件中用到该主题的activity的标签中加入 android:theme="@style/CustomTheme"

    4.在activity的java文件的onCreate()方法中编辑以下代码:

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
            setContentView(R.layout.activity_main);
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                    R.layout.base_title);

    注意:只写上面这些的话有可能在 setContentView(R.layout.activity_main);这句会报空指针异常导致程序停止运行

    解决:在values的styles中自己的主题加 <item name="android:windowActionBar" tools:ignore="NewApi">false</item>(亲测可用)

    希望能给大家带来帮助谢谢。

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-21 22:42 , Processed in 0.182583 second(s), 30 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表