android-contextual-action-bar

Features


Min SDK : 10
Price : Free
Language : Java

 

Download


Link : Github
Owner : Arjun-sna
Source Code : Download

 

Contextual ActionBar

A contextual actionbar library with many customisation option.

Demo

Installation

Add dependency in build.gradle

repositories {
jcenter()
}
dependencies {
compile 'in.arjsna:cablib:0.0.1'
}

Usage

Include a ViewStub in the layout file where the Contextual Actionbar need to be shown

<ViewStub
android:id="@+id/cab_stub"
android:layout_width="match_parent"
android:layout_height="?actionBarSize" />

Then customise the Contextual Actionbar and show it whenever needed

ContextualActionBar customCab = new ContextualActionBar(MainActivity.this, R.id.cab_stub)
.setMenu(R.menu.sample_menu) //The menu to inflated
.setCloseDrawableRes(R.drawable.up_button_white) //Home button drawable
.setTitle(getResources().getString(R.string.cab_text)) //Title string
.setLayoutAnim(R.anim.layout_anim) //Enter Animation
.setTitleTypeFace(Typeface.createFromAsset(MainActivity.this.getAssets(), "fonts/Avenir-Medium.ttf"))
.start(cabCallback);
private CabCallback cabCallback = new CabCallback() {
@Override
public boolean onCreateCab(ContextualActionBar cab, Menu menu) {
return true;
}
@Override
public boolean onCabItemClicked(MenuItem item) {
switch (item.getItemId()){
case R.id.delete_chat_heads:
Toast.makeText(MainActivity.this, "Deleted", Toast.LENGTH_SHORT).show();
customCab.finish();
return true;
case R.id.select_all:
Toast.makeText(MainActivity.this, "Selected all", Toast.LENGTH_SHORT).show();
return true;
case R.id.select_none:
Toast.makeText(MainActivity.this, "Deselected all", Toast.LENGTH_SHORT).show();
return true;
default:
return false;
}
}
@Override
public boolean onDestroyCab(ContextualActionBar cab) {
return true;
}
};

The above initialisation needs to be done only once for a view. You can hide and restore later the same by

customCab.restore();
Note

Forked and enhanced the code from this project
https://github.com/afollestad/material-cab

License

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this work except in compliance with the License.
You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.