`
龙哥IT
  • 浏览: 253873 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

TopBar—标题栏自定义View,一行搞定

 
阅读更多

标题栏自定义布局:

 

<com.xxx.TopBar
        android:id="@+id/top_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

 

private void initTopBar() {
        topBar.setTitile("帮你贷").setVisible(false).setTitleBarListener(new TopBar.BtnClickListener() {
            @Override
            public void leftClick() {
                finish();
            }

            @Override
            public void rightClick() {

            }
        });
    }

     TopBar.java类

public class TopBar extends RelativeLayout implements View.OnClickListener {
    private BtnClickListener listener;

    private ImageView back;
    private TextView titile,right_txt;
    private RelativeLayout bg_color;
    private View view;

    public void setTitleBarListener(BtnClickListener listener) {
        this.listener = listener;
    }

    public interface BtnClickListener {
        void leftClick();

        void rightClick();
    }

    public TopBar(Context context) {
        super(context);
    }

    public TopBar(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }


    private void init(Context context) {
        LayoutInflater.from(context).inflate(R.layout.top, this);
        view= (View) findViewById(R.id.view);
        bg_color = (RelativeLayout) findViewById(R.id.bg_color);
        back = (ImageView) findViewById(R.id.back);
        titile = (TextView) findViewById(R.id.titile);
        right_txt= (TextView) findViewById(R.id.right_txt);
        back.setOnClickListener(this);
        right_txt.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.back:
                listener.leftClick();
                break;
            case R.id.right_txt:
                listener.rightClick();
                break;

        }
    }


/**
 * 设置背景颜色
 */
public TopBar setTopBackgroundColor(int color){
    bg_color.setBackgroundColor(getResources().getColor(color));//////这样才可以
    return this;
}

    /**
     * 设置文字颜色
     */
    public TopBar setTextColor(int color){
        titile.setTextColor(this.getResources().getColor(color));

        return this;
    }
    /**
     * 设置文字
     * @param string
     * @return
     */
    public TopBar setRightTxt(String string){
        right_txt.setText(string);
        return this;
    }

    /**
     * 设置文字
     * @param string
     * @return
     */
    public TopBar setTitile(String string){
        titile.setText(string);
        return this;
    }
    /**
     * 编辑框是否可见
     */
    public TopBar setVisible(Boolean flag){
        if (flag) {
            back.setVisibility(GONE);
        } else {
            back.setVisibility(VISIBLE);
        }
        return this;
    }
    /**
     * 编辑框是否可见
     */
    public TopBar setVisibleView(Boolean flag){
        if (flag) {
            view.setVisibility(GONE);
        } else {
            view.setVisibility(VISIBLE);
        }
        return this;
    }
}

   top.xml布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bg_color"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="@android:color/white"
    >

    <ImageView
       android:padding="5dp"
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:src="@drawable/back"
        android:gravity="center"
        android:textSize="16sp"
        android:layout_above="@+id/view"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
    <TextView
        android:id="@+id/titile"
        android:gravity="center"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:textColor="#555555"
        android:textSize="16sp" />
    <TextView
        android:id="@+id/right_txt"
        android:layout_marginRight="10dp"
        android:gravity="center"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:textColor="#555555"
        android:textSize="14sp" />
    <View
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="0.1dp"
        android:background="#c2c2c2"
        android:id="@+id/view" />

</RelativeLayout>

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android UI模板设计 TopBar 标题栏的设计

    本主题聚焦于"Android UI模板设计 - TopBar 标题栏的设计",旨在探讨如何通过自定义控件实现TopBar的高效复用,从而提升开发效率和应用一致性。 TopBar,通常位于界面顶部,承载着展示应用标识、页面标题、功能操作...

    自定义View源代码

    本项目中的"自定义View源代码"主要聚焦于一个名为"TopBar"的文件,这通常是应用顶部导航栏的自定义实现。下面将详细解释与自定义View相关的知识点,并结合TopBar文件进行分析。 1. **自定义View的基本步骤**: - ...

    自定义TopBar和属性封装

    在Android应用开发中,TopBar通常指的是应用顶部的导航栏,它包含应用的标题、返回按钮和其他操作选项,是用户界面的重要组成部分。本教程将详细讲解如何进行自定义TopBar和属性封装,以便让界面风格更统一,同时...

    Android 自定义view模板并实现点击事件的回调

    这个模板以老版QQ的顶部栏为例,它通常包含左右两个按钮和一个中间的标题。 首先,我们创建一个attrs.xml文件在res/values目录下,用于定义自定义属性。这些属性包括标题文字(title)、标题背景(titleBacgroud)...

    Android UI模板设计---TopBar(标题栏)

    TopBar,通常称为标题栏,是用户界面中的重要组成部分,用于显示当前页面的标题以及提供一些常用的操作入口。本教程将深入探讨如何在Android中设计并实现一个自定义的TopBar。 首先,我们来了解TopBar的基本构成。...

    [安卓开发] 自定义View之一: 组合View Demo

    在给定的压缩包文件"TopBar"中,可能包含了一个自定义的顶部栏组件,例如,它可能包括一个标题TextView、一个返回按钮ImageView以及一些其他的功能按钮。通过组合这些元素,我们可以在整个应用中统一顶部导航栏的...

    Android UI模板之自定义Topbar

    创建自定义Topbar的第一步是定义一个自定义View类,这个类将继承自Android的LinearLayout或ToolBar。在自定义View中,我们可以添加所需的UI元素,比如ImageView用于显示Logo,TextView用于显示标题,以及Button或...

    Android 自定义控件之简单自定义一个TopBar

    TopBar通常用作应用程序顶部的导航栏,它能展示标题、菜单图标等元素,为用户提供清晰的操作指引。 1. **创建自定义View类** 首先,我们需要创建一个新的Java类,继承自Android的`View`或`ViewGroup`。在这个例子中...

    android自定义View—顶部导航栏

    标题中的"android自定义View—顶部导航栏"正是指这个过程,它旨在创建一个可重用的组件,用于在多个Activity之间提供一致的导航体验。 首先,我们从基础开始,理解Android中的自定义View。自定义View是扩展系统提供...

    Android 自定义view实现TopBar效果

    本文实例为大家分享了Android自定义view实现TopBar的具体代码,供大家参考,具体内容如下 布局文件 &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;RelativeLayout xmlns:android=...

    自定义TopBar

    在Android应用开发中,自定义TopBar是一种常见的需求,它能根据项目的具体设计风格和功能需求进行个性化定制,提升用户体验。本教程将深入探讨如何在Android中实现自定义TopBar,以及其背后的原理和实践技巧。 一、...

    自定义组合控件topbar

    在Android应用开发中,"自定义组合控件topbar"是一个常见的需求,它通常指的是一个包含多种功能元素的顶部导航栏。这样的控件可以提供更好的用户体验,并且可以根据设计师的需要进行定制,以满足应用程序的独特风格...

    android自定义topbar

    在Android应用开发中,自定义TopBar(也称为标题栏或ActionBar)是常见的需求,它允许开发者根据应用的品牌和设计规范来个性化应用的界面。本文将深入探讨如何在Android中实现自定义TopBar,包括设置按钮、文字、...

    Android自定义标题栏

    在Android应用开发中,自定义标题栏(TopBar)是一个常见的需求,因为它可以提供独特的用户界面体验,并且有助于品牌识别。通常,Android系统默认提供一个简单的ActionBar或Toolbar,但为了满足设计上的独特性和功能...

    android自定义topbar以及侧滑菜单

    为了封装一个自定义的Topbar,我们需要创建一个新的布局文件,定义所需元素,如TextView用于显示标题,ImageView用于放置应用图标,以及可能的ActionBar或ToolBar中的其他自定义按钮。在Java代码中,我们可以创建一...

    Xamarin开发Android不显示标题栏,隐藏title

    为了隐藏标题栏,我们需要创建一个继承自Android原生主题(如`Theme.AppCompat.Light.NoActionBar`或`Theme.Material3.DayNight.NoActionBar`,具体取决于你的Android支持库版本)的新主题。在`styles.xml`文件中...

    topbar工具

    总结来说,`topbar`工具是Android开发中的一个自定义组件,通过封装常见的顶部导航栏功能,提供了便捷的集成方式。使用时,开发者只需在布局文件中声明并配置组件,即可轻松创建符合应用风格的Topbar,同时还能通过...

    TopBar的基本实现

    在"TopBar"的实现中,我们首先会创建一个新的Java类,继承自Android的基础视图类,例如`View`或`LinearLayout`。这样做可以让我们覆盖父类的方法,添加自己的属性和行为。类名可能是`CustomTopBar`,并包含必要的...

Global site tag (gtag.js) - Google Analytics