`

自定义标题栏

 
阅读更多

1. 编写标题栏的layout.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="wrap_content"
    android:background="@drawable/title_bg">

    <Button
        android:id="@+id/title_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:background="@drawable/back_bg"
        android:text="Back"
        android:textColor="#fff" />

    <TextView
        android:id="@+id/title_text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Title Text"
        android:textColor="#fff"
        android:textSize="24sp" />

    <Button
        android:id="@+id/title_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:background="@drawable/edit_bg"
        android:text="Edit"
        android:textColor="#fff" />

</LinearLayout>

 

2. 创建自定义控件类

   

public class MyLayout extends LinearLayout{

    public MyLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        LayoutInflater.from(context).inflate(R.layout.title, this);
        Button titleBack = (Button) findViewById(R.id.title_back);
        Button titleEdit = (Button) findViewById(R.id.title_edit);
        titleBack.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                ((Activity) getContext()).finish();
            }
        });
        titleEdit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getContext(), "You clicked Edit button",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
}

 

3.在需要使用自定义标题栏的activity的布局文件中,添加如下代码:

   //标题栏布局文件的路径名一定要完整

 <aispeech.learn1.MyLayout   
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

 

4.隐藏系统的标题栏

    //在使用自定义标题栏的activity中,隐藏标题栏

getSupportActionBar().hide();

分享到:
评论

相关推荐

    Qt5实现自定义标题栏

    在Qt开发中,自定义标题栏是一个常见的需求,它允许开发者根据应用的视觉风格和功能需求来定制窗口的顶部区域。Qt5作为一个强大的跨平台GUI工具包,提供了丰富的API和功能来实现这样的自定义。本篇文章将深入探讨...

    android自定义标题栏

    本教程将深入探讨如何在Android中实现自定义标题栏,主要基于提供的"android自定义标题栏源码"。 首先,我们了解Android原生标题栏的局限性。原生的ActionBar或Toolbar虽然提供了基础功能,但有时不能满足个性化的...

    自定义标题栏可缩放的QDialog

    在本文中,我们将深入探讨如何实现一个自定义标题栏且具有可缩放功能的QDialog。QDialog是Qt库中的一个关键组件,它提供了一种弹出式对话框的实现方式,通常用于显示一些临时信息或者进行用户交互。然而,Qt默认的...

    qt5 自定义标题栏

    在Qt5中,自定义标题栏是一项常见的需求,特别是在开发具有独特用户界面风格的应用程序时。这个主题将深入探讨如何使用Qt5实现自定义标题栏,包括移除系统默认的标题栏,添加基本操作(如关闭、最大化和最小化)以及...

    (原创) 漂亮的自定义标题栏

    在vc开发中经常用到自定义标题栏,但是通常不清楚如何更改里面的内容,比如如何覆盖标题栏的背景,如何添加自定义的放大,缩小、关闭按钮并添加相应的响应函数,如何放入自定义的图标,如何在标题栏上绘制曲线,我的...

    Labview自定义标题栏并透明化界面

    在LabVIEW编程环境中,创建一个具有自定义标题栏和透明化界面的应用程序是一项高级技巧,可以为用户带来更直观和个性化的交互体验。本篇将详细介绍如何实现这一功能。 首先,我们要理解LabVIEW的基本界面构造。...

    C# wpf 在style中自定义标题栏及无边框窗口

    本资源实现了一种wpf在style中自定义标题栏无边框窗口的方法。style内部的实现其实没那么简单,尤其是实现按钮逻辑以及拖动逻辑,需要在style中关联cs代码,这就要求我们熟悉绑定技巧、附加属性还有ContentPresenter...

    鸿蒙HarmonyOS 开发通过 @BuilderParam装饰器:引用@Builder函数实现自定义标题栏

    在鸿蒙HarmonyOS开发中,自定义标题栏是一个常见的需求,这有助于为应用程序提供独特的用户界面和交互体验。@BuilderParam装饰器和@Builder函数是HarmonyOS SDK中的两个关键工具,它们允许开发者轻松创建和配置...

    【Qt】仿360安全卫士界面(自定义标题栏).rar

    在本文中,我们将深入探讨如何使用Qt框架来创建一个仿360安全卫士界面,特别是专注于自定义标题栏的设计。Qt是一个跨平台的应用程序开发框架,广泛应用于GUI(图形用户界面)编程,支持多种操作系统,如Windows、...

    Android自定义标题栏

    在Android应用开发中,自定义标题栏(ActionBar或者Toolbar)是一项常见的需求,它可以让应用程序具有独特的界面风格,提升用户体验。Android系统默认提供了标题栏(ActionBar)功能,但往往无法满足开发者的所有...

    QT快速开发自定义标题栏示例

    QT快速开发自定义标题栏示例,非常简单,使用方法如下: 1、目标窗口添加标题栏、最大化最小化关闭按钮(该步最好每次使用时,从模板程序中直接复制) 2、窗口基类从QDialog改为QFramelessDialog 3、窗口构造函数中...

    解决android自定义标题栏充满的问题

    在Android应用开发中,自定义标题栏是一种常见的需求,它能提供独特的用户界面风格和更好的交互体验。然而,实现一个自定义标题栏充满整个屏幕可能会遇到一些问题,尤其是在不同设备和分辨率下。这篇博客“解决...

    C# wpf style中实现可定制的自定义标题栏

    上一章我们实现了在style中自定义标题栏,解决了复用性的问题。但是在实际使用中,还是存在一些问题的,比如有些界面需要放几个菜单在标题栏或者不需要最大化按钮等,就会变得很不灵活。这时候就需要对style进行...

    uni-app-自定义标题栏示例.zip

    【uni-app自定义标题栏示例】是一个基于uni-app框架的源码分享,适用于开发者们在构建跨平台移动应用时自定义应用标题栏的需求。uni-app是一个由DCloud(即海马云)推出的开源项目,它允许开发者使用Vue.js语法编写...

    Qt自定义标题栏源码V1.0

    自定义标题栏源码,实现了 1.鼠标左键点击移动 2.最小化 最大化/恢复 关闭程序功能 3.双击鼠标最大化/恢复功能 ************************************************************************************************...

    C# xamarin android自定义标题栏

    在Xamarin.Android开发中,创建自定义标题栏是提升应用用户体验和界面个性化的重要步骤。Xamarin是一个强大的跨平台开发工具,允许开发者使用C#语言构建原生的iOS、Android和Windows应用程序。本教程将深入探讨如何...

    Android复合控件学习之自定义标题栏

    在Android应用开发中,自定义标题栏是一种常见的需求,它能帮助我们打造出具有独特风格的用户界面。本文将深入探讨如何在Android中实现自定义标题栏,并涉及自定义属性、接口回调等关键知识点。 首先,我们需要理解...

    android studio自定义标题栏,可自定义回退按钮事件

    在Android开发中,自定义标题栏是提升应用用户体验和界面个性化的重要手段。Android Studio作为官方推荐的集成开发环境,提供了丰富的工具和API来帮助开发者实现这一目标。本篇将详细探讨如何在Android Studio中实现...

    利用Qt实现自定义标题栏功能(自定义最大化、最小化、关闭等功能).zip

    利用Qt实现自定义标题栏功能(自定义最大化、最小化、关闭等功能),自定义标题栏,可以自己设计按键的大小,图标,位置,能够和背景更加统一,详细内容可参考文章:...

Global site tag (gtag.js) - Google Analytics