آموزش شخصی سازی ActionBar بسیار ساده و روان - ایکلیپس
سلام،
تا به حال نمونه های مختلفی از اکشن بار ها را دیده اید، برخی از نمونه هایی که در سایت ها موجود هست با اسلایدمنوها یا سایر کتابخانه ها کانفلیکت دارد!
در این آموزش قصد دارم طی دو مرحله! شخصی سازی یک اکشن بارِ منعطف و بسیار ساده را آموزش دهم، امیدوارم مفید واقع شود.

مرحله اول: ابتدا یک فایل xml در پوشه res شاخه layout با نام custom_actionbar.xml ایجاد کنید و کد زیر را در آن قرار دهید:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#a0be46" >
<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#fff"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:src="@drawable/ic_launcher" />
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="8dp"
android:background="@null"
android:src="@android:drawable/ic_menu_rotate" />
</RelativeLayout>
لی اوت بالا همان اکشن بار شخصی سازی شده شما می باشد. می توانید هرچه میخواهید کم و زیاد کنید...
مرحله دوم: حال در اکتیویتی مورد نظرتان کد زیر را بگنجانید:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// start custom action bar codes
ActionBar mActionBar = getActionBar();
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
mTitleTextView.setText("My Own Title");
ImageButton imageButton = (ImageButton) mCustomView
.findViewById(R.id.imageButton);
imageButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "Refresh Clicked!",
Toast.LENGTH_LONG).show();
}
});
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
// end custom action bar codes
}
}
تعریف اکشن بار در تم: اگر می خواهید پس زمینه ActionBar را تغییر دهید در فایل styles.xml کد زیر را جایگزین نمایید، توجه کنید که حتما برای تم مورد نظر یک مورد با actionbar تعریف شده باشد مثل android:Theme.Holo.Light.DarkActionBar
<!-- Application theme. -->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#a0be46</item>
</style>
نتیجه کار:

موفق باشید...
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .