美文网首页
自定义标题栏ActionBarTextView

自定义标题栏ActionBarTextView

作者: 那一抹无言的芯痛 | 来源:发表于2018-02-01 16:28 被阅读0次

自定义控件

/** 标题栏, 可设置标题和左右图标*/

引用库

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
public class ActionBarTextView extends FrameLayout {
private TextView mTitleView;
private TextView mLeftActionButton;
private TextView mActionBarTitle;
private TextView rightActionButton;
private View actionBarLayout;
private ImageView rightActionImageView;

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

public ActionBarTextView(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}

public ActionBarTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
}

@SuppressLint("CutPasteId")
private void init() {
    LayoutInflater.from(getContext()).inflate(
        R.layout.action_bar_layout_text, this);
    mTitleView = (TextView) findViewById(R.id.actionBarTitle);
    mLeftActionButton = (TextView) findViewById(R.id.leftActionButton);
    mActionBarTitle = (TextView) findViewById(R.id.actionBarTitle);
    rightActionButton = (TextView) findViewById(R.id.rightActionButton);
    rightActionImageView = (ImageView) findViewById(R.id.rightActionImageView);
    actionBarLayout = findViewById(R.id.actionBarLayout);
    try {
        int color = Color.parseColor(CacheUtil.getAppConfig(getContext())
            .getThemeColor());
        actionBarLayout.setBackgroundColor(color);
    } catch (Exception e) {
        e.printStackTrace();
    }
    hideLeftActionButtonText();
}

public void setTitle(String text) {
    mTitleView.setText(text);
}

public void setTitle(int text) {
    mTitleView.setText(text);
}

public void setTitleTextColor(int resId) {
    mTitleView.setTextColor(getResources().getColor(resId));
}

public void setLeftActionButton(int icon, OnLimitClickHelper listener) {
    if (icon != R.mipmap.btn_back) {
        hideLeftActionButtonText();
    }
    if (icon != 0) {
        Drawable drawable = getResources().getDrawable(icon);
        // / 这一步必须要做,否则不会显示.
        drawable.setBounds(0, 0, drawable.getMinimumWidth(),
            drawable.getMinimumHeight());
        mLeftActionButton.setCompoundDrawables(drawable, null, null, null);
    } else {
        Drawable drawable = getContext().getResources().getDrawable(
            R.drawable.btn_goback_style);
        mLeftActionButton.setBackgroundDrawable(drawable);
    }
    mLeftActionButton.setOnClickListener(listener);
}

public void setRightActionButton(int icon, OnLimitClickHelper listener) {
    if (icon != 0) {
        Drawable drawable = getResources().getDrawable(icon);
        // / 这一步必须要做,否则不会显示.
        drawable.setBounds(0, 0, drawable.getMinimumWidth(),
            drawable.getMinimumHeight());
        rightActionButton.setCompoundDrawables(drawable, null, null, null);
    } else {

        Drawable drawable = getContext().getResources().getDrawable(
            R.drawable.btn_goback_style);
        rightActionButton.setBackgroundDrawable(drawable);
    }
    rightActionButton.setOnClickListener(listener);
}

/**
 * 给title加点击事件
 *
 * @param listener
 */
public void setActionBarTitleClickListener(OnLimitClickHelper listener) {
    mActionBarTitle.setOnClickListener(listener);
}

/**
 * 隐藏左上角按钮的文字
 */
public void hideLeftActionButtonText() {
    mLeftActionButton.setText("");
}

/**
 * 隐藏右上角按钮的文字
 */
public void hideRightActionButtonText() {
    rightActionButton.setText("");
}

/**
 * 修改右上角按钮的文字
 */
public void setRightActionButtonText(String text) {
    rightActionButton.setText(text);
}

/**
 * 隐藏右上角按钮图片
 */
public void hideRightActionButtonImage() {
    rightActionButton.setCompoundDrawables(null, null, null, null);
}

/**
 * 隐藏左上角按钮
 */
public void hideLeftActionButton() {
    mLeftActionButton.setVisibility(View.GONE);
}

/**
 * 隐藏右上角按钮
 */
public void hideRightActionButton() {
    rightActionButton.setVisibility(View.GONE);
}

public void setRightActionButton(String text, OnLimitClickHelper listener) {
    rightActionButton.setCompoundDrawables(null, null, null, null);
    rightActionButton.setText(text);
    rightActionButton.setOnClickListener(listener);
}

public void setLeftActionButtonText(String text, OnLimitClickHelper listener) {
    mLeftActionButton.setCompoundDrawables(null, null, null, null);
    mLeftActionButton.setText(text);
    mLeftActionButton.setOnClickListener(listener);
}

public void setrightActionImageViewVisible(int icon,
                                           OnLimitClickHelper listener) {
    rightActionImageView.setVisibility(View.VISIBLE);
    if (icon != 0) {
        Drawable drawable = getResources().getDrawable(icon);
        // / 这一步必须要做,否则不会显示.
        drawable.setBounds(0, 0, drawable.getMinimumWidth(),
            drawable.getMinimumHeight());
        rightActionImageView.setBackgroundDrawable(drawable);
    }
    rightActionImageView.setOnClickListener(listener);
}

}

相关文章

  • 自定义标题栏ActionBarTextView

    自定义控件 /** 标题栏, 可设置标题和左右图标*/ 引用库 import android.annotation...

  • Android Dialog自定义去除标题

    style 无标题,有标题栏 无标题,无标题栏 自定义Dialog Activity调用

  • Android自定义标题栏

    Android自定义标题栏思路:1.在layout中添加标题栏的布局文件title(具体布局自己设置)2.自定义控...

  • UI-ToolBar 标题栏

    在开发中经常需要使用到标题栏,很多时候我们会自自定义一个标题栏,因为自定义标题栏基本上就只需要使用个Relativ...

  • android 自定义标题栏 状态栏颜色设置

    隐藏标题栏 自定义的nav标题栏, 可以自己完善 自定义的nav属性 在布局文件中使用 全局设置状态栏颜色 使用提...

  • appcompatactivity 去除标题栏

    appcompat本身就是无标题栏的,因为SupportActionBar本来就是自定义的标题栏。可以在Andro...

  • requestWindowFeature(Window.FEAT

    今天学习Android,需要将系统自带的标题栏隐藏掉,使用自定义的标题栏,结果发现,requestWindowFe...

  • Android自定义标题栏控件(补充)

    在上一篇文章Android 自定义复合控件之通用标题栏中记录了自定义标题栏控件的整个过程,不过如果直接拿来在别的项...

  • 安卓View

    【Android 自定义 View 实战】之自定义项目通用的标题栏 CustomTitleBar 【Android...

  • Material Design

    AppbBarLayout.Behavior自定义 CollapsingToolbarLayout折叠式标题栏 C...

网友评论

      本文标题:自定义标题栏ActionBarTextView

      本文链接:https://www.haomeiwen.com/subject/rpgdzxtx.html