在创建自己的Android操作栏 [英] Create own action bar in android
问题描述
我有一些问题,在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>
祝你好运!
这篇关于在创建自己的Android操作栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!