مشخصات مقاله
-
3201
-
0.0
-
4562
-
0
-
0
آموزش نحوه ی استفاده از action bar اندروید قسمت دوم
دوره آموزش برنامه نویسی اندروید
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
آموزش نحوه ی استفاده از action bar اندروید قسمت دوم
پنهان سازی دکمه ی پیمایش (Dimming navigation button )
می توانید با پنهان سازی (dimming) دکمه ی پیمایش نرم افزار، فضای موجود را در اپلیکیشن یا برنامه ی کاربردی اندروید افزایش داد. حال چنانچه کاربر مکان تخصیص یافته به دکمه ی مورد نظر را لمس کند، باز دکمه ی پیمایش به صورت خودکار پدیدار می گردد.
مثال
getWindow().
getDecorView().
setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
تصاویر زیر برنامه ای با دکمه ی پیمایش (navigation button) و بدون آن به نمایش می گذارد.
استفاده از حالت تمام صفحه ی همه جانبه برای اپلیکیشن های اندروید (immersive full-screen mode)
از نسخه ی 4.4 به بعد سیستم عامل اندروید، می توانید برنامه ی کاربردی خود را در حالت تمام صفحه (full-screen) قرار دهید. اولین مرتبه ای که این کار را انجام می دهید، سیستم به اطلاع شما می رساند که با قرار دادن انگشت روی صفحه نمایش و کشیدن آن به پایین در ناحیه ای که نوارهای سیستم قرار دارند (downward swipe)، می توانید system bars را به حالت و جای اصلی خود بازگردانید. متدی که در تکه کد زیر بکار رفته، activity را در حالت تمام صفحه قرار می دهد.
// This method hides the system bars and resize the content
private void hideSystemUI() {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
// remove the following flag for version < API 19
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
نصف کردن action bar
می توانید به سیستم دستور بدید تا در صورت نبود فضای کافی، action bar را به دو بخش تقسیم کند. می توانید این امکان را حین تعریف activity برنامه با استفاده از پارامتر "android:uiOptions="SplitActionBarWhenNarrow در فایل AndroidManifest.xml ایجاد کرد.
نکته
در صورت تعریف این امکان یا گزینه به طور موفقیت آمیز، سیستم اندروید دیگر قادر خواهد بود در صورت نیاز و مجرد زمان اجرا action bar را نصف (split) کند تا بدین وسیله فضای کافی برای فعالیت های لازم فراهم شود.
4. افزایش قابلیت های action bar با استفاده از fragment
Fragment ها همچنین می توانند به action bar ورودی (entry) های اضافه کرده و قابلیت های آن را افزایش دهند.
برای این منظور، setHasOptionMenu (true) را در متد onCreate () فرگمنت مربوطه فراخوانی کنید. Android framework در این مورد متد onCreateOptionMenu () را در کلاس fragment فراخوانی کرده، سپس آیتم های قابل گزینش (menu item) را به آیتم های قابل گزینشی که توسط activity ارائه شده اند اضافه می کند.
5. پویا سازی action bar
افزودن view های سفارشی به action bar
شما می توانید view های سفارشی (custom) به action bar اضافه کنید، از جمله textfield یا دکمه.
برای نیل به این هدف، از متد setCustomView که مشتق کلاس ActionView می باشد، استفاده می کنید. البته لازم است نمایش view های سفارشی را به وسیله ی متد setDisplayOptions () و ارسال پرچم ActionBar.DISPLAY_SHOW_CUSTOM به داخل آن فعال کنید.
به طور مثال، می توان فایل layout ای تعریف کرد که دربردارنده ی اِلِمان EditText باشد.
xml version="1.0" encoding="utf-8" ?>
<edittext xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/searchfield"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputtype="textFilter">
edittext>
این شَمای کلی (layout) را می توان همان طور که در مثال زیر مشاهده می کنید داخل activity به action bar اضافه کرد. اگر توجه داشته باشید، می بینید که listener نیز به view سفارشی ضمیمه و پیوست شده.
package com.vogella.android.actionbar.customviews;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getActionBar();
// add the custom view to the action bar
actionBar.setCustomView(R.layout.actionbar_view);
EditText search = (EditText) actionBar.getCustomView().findViewById(R.id.searchfield);
search.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v، int actionId،
KeyEvent event) {
Toast.makeText(MainActivity.this، "Search triggered"،
Toast.LENGTH_LONG).show();
return false;
}
});
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
| ActionBar.DISPLAY_SHOW_HOME);
}
}
