在创建自己的Andr​​oid操作栏 [英] Create own action bar in android

查看:91
本文介绍了在创建自己的Andr​​oid操作栏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些问题,在Android操作栏。我想有左侧和右侧的一些图标。在左侧我想有2个图标和文字和右侧我想有6个图标,但是当文字很长,我想隐藏右侧一些图标。在标准动作条我只能从右到左添加项目,所以我决定创建自己的行动吧。我该如何开始?我需要知道该怎么做。你能给我一些建议或例子?

I have some problems with action bar in android. I want to have some icons on left side and on right side. On left side I want to have 2 icons and text and on right side I would like to have 6 icons, but when text is very long I want to hide some icons on right side. In standard action bar I can add items only from right to left, so I decide to create own action bar. How I can start? What I need to know to do that. Can you give me some advices or examples?

推荐答案

它非常简单。创建新类,将一些布局进行扩展。充气XML,这将是有图标和按钮。并为逻辑显示\\隐藏\\组侦听器等方法。我做到了早,但现在我可以说,它不是那么好主意。有准则和非常重要的,创建应用程序,因为它必须是。

Its very simple. Create new class that will be extended from some layout. Inflate xml which will be have icons and buttons. And make methods for logic show\hide\set listeners and so on. I did it early but now i can say that it's not so good idea. There are guidelines and very important to create apps as it must be.

从我的旧的项目示例:

public class ActionBar extends RelativeLayout {
    private ToggleButton buttonSave;
    private ToggleButton buttonClear;
    private ToggleButton buttonHelp;
    private ToggleButton buttonBack;
    private FrameLayout sepparator;
    private TextView textview;
    private ImageView imageViewIcon;


    public ActionBar(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layoutInflater.inflate(R.layout.actionbar, this);

        initView();
    }

    private void initView () {
        buttonSave = (ToggleButton) findViewById(R.id.actionbar_togglebutton_save);
        buttonBack = (ToggleButton) findViewById(R.id.actionbar_togglebutton_back);
        buttonHelp = (ToggleButton) findViewById(R.id.actionbar_togglebutton_help);
        textview = (TextView) findViewById(R.id.actionbar_textview);
        imageViewIcon = (ImageView) findViewById(R.id.actionbar_imageview_icon);
        buttonClear = (ToggleButton) findViewById(R.id.actionbar_togglebutton_clear);
        sepparator = (FrameLayout) findViewById(R.id.actionbar_sepparator);
    }

    public void setOnSaveButtonClickListener (OnClickListener listener) {
        buttonSave.setOnClickListener(listener);
    }

    public void setSaveButtonDrawable (Drawable d) {
        buttonSave.setBackgroundDrawable(d);
        buttonSave.setVisibility(View.VISIBLE);
    }

    public void setOnHelpButtonClickListener (OnClickListener listener) {
        buttonHelp.setOnClickListener(listener);
    }
    public void setHelpButtonDrawable (Drawable d) {
        buttonHelp.setBackgroundDrawable(d);
        buttonHelp.setVisibility(View.VISIBLE);
    }

    public void setOnBackButtonClickListener (OnClickListener listener) {
        buttonBack.setOnClickListener(listener);
    }

    public void setBackButtonDrawable (Drawable d) {
        buttonBack.setBackgroundDrawable(d);
        buttonBack.setVisibility(View.VISIBLE);
    }

    public void setClearButtonDrawable (Drawable d) {
        buttonClear.setBackgroundDrawable(d);
        buttonClear.setVisibility(View.VISIBLE);
    }

    public void setOnClearButtonClickListener (OnClickListener listener) {
        buttonClear.setOnClickListener(listener);
    }

    public void setTitle (String value) {
        textview.setText(value);
    }

    public void setIcon (int resId) {
        imageViewIcon.setImageDrawable(getResources().getDrawable(resId));
    }

    public void setOnIconClickListener (OnClickListener listener) {
        imageViewIcon.setOnClickListener(listener);
    }

    public void setSaveButtonChecked (boolean value) {
        buttonSave.setChecked(value);
    }

    public void setSeporatorVisible (int visibility) {
        sepparator.setVisibility(visibility);
    }

    public void setOnIconListener (OnClickListener listener) {
        imageViewIcon.setOnClickListener(listener);
    }
}

XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:background="@drawable/avtion_bar_bg" >


    <ToggleButton 
        android:id="@+id/actionbar_togglebutton_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:visibility="gone"
        android:background="@drawable/arrow_back_button_drawable"
        android:textOn=""
        android:textOff="" />

     <ImageView 
        android:id="@+id/actionbar_imageview_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/actionbar_togglebutton_back"
        android:layout_marginLeft="19.1dp"/>

    <TextView 
        android:id="@+id/actionbar_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:textColor="@color/actionbar_text"
        android:textSize="16dp"
        android:layout_toRightOf="@id/actionbar_imageview_icon"
        android:layout_marginLeft="56.1dp" /> 

   <RelativeLayout 
       android:id="@+id/actionbar_relativelayout_saveconteiner"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentRight="true"
       android:layout_centerVertical="true">

       <ToggleButton 
           android:id="@+id/actionbar_togglebutton_save"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" 
           android:visibility="gone"
           android:layout_alignParentRight="true"
           android:layout_centerVertical="true"
           android:background="@drawable/save_btn_drawable"
           android:textOn=""
           android:textOff=""/>

       <FrameLayout 
           android:id="@+id/actionbar_sepparator"
           android:layout_width="0.5dp"
           android:background="@color/white25transpert"
           android:layout_toLeftOf="@id/actionbar_togglebutton_save"
           android:layout_height="35dp"
           android:layout_centerInParent="true">     
       </FrameLayout>

       <ToggleButton 
           android:id="@+id/actionbar_togglebutton_clear"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" 
           android:visibility="gone"
           android:layout_toLeftOf="@id/actionbar_sepparator"
           android:layout_marginRight="4dp"
           android:layout_centerVertical="true"
           android:background="@drawable/clear_button_drawable"
           android:textOn=""
           android:textOff=""/>

   </RelativeLayout> 

   <ToggleButton 
      android:id="@+id/actionbar_togglebutton_help"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" 
      android:visibility="gone"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:background="@drawable/save_btn_drawable"
      android:layout_marginRight="10dp"
      android:textOn=""
      android:textOff=""/>

</RelativeLayout>

祝你好运!

这篇关于在创建自己的Andr​​oid操作栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆