کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش نحوه ی استفاده از ‏action bar‏ اندروید‎ قسمت دوم

 

clip_image001

دوره آموزش برنامه نویسی اندروید

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

 

آموزش نحوه ی استفاده از ‏action bar‏ اندروید قسمت دوم 

 پنهان سازی دکمه ی پیمایش (Dimming navigation button )

می توانید با پنهان سازی (dimming) دکمه ی پیمایش نرم افزار، فضای موجود را در اپلیکیشن یا برنامه ی کاربردی اندروید افزایش داد. حال چنانچه کاربر مکان تخصیص یافته به دکمه ی مورد نظر را لمس کند، باز دکمه ی پیمایش به صورت خودکار پدیدار می گردد.

مثال

getWindow().
  getDecorView().

  setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

 تصاویر زیر برنامه ای با دکمه ی پیمایش (navigation button) و بدون آن به نمایش می گذارد.

برنامه ای با action bar

برنامه ای با action bar مخفی

استفاده از حالت تمام صفحه ی همه جانبه برای اپلیکیشن های اندروید (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);

  }

}

1394/07/27 4562 3201
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...