Kontekstli harakat rejimidan foydalanish
Kontekstli harakat rejimi - bu ActionModefoydalanuvchining o'zaro ta'sirini kontekstli harakatlarni amalga oshirishga yo'naltiradigan tizimni amalga oshirish . Agar foydalanuvchi elementni tanlash bilan ushbu rejimni yoqsa , ekranning yuqori qismida foydalanuvchi hozirda tanlangan element (lar) da bajarishi mumkin bo'lgan harakatlarni ko'rsatish uchun kontekstli harakatlar paneli paydo bo'ladi. Ushbu rejim yoqilgan bo'lsa ham, foydalanuvchi bir nechta elementni tanlashi mumkin (agar siz bunga ruxsat bersangiz), elementlarning tanlovini olib tashlashi mumkin va faoliyat ichida harakat qilishni davom ettirishingiz mumkin (xohlagancha). Harakat rejimi o'chirilgan va foydalanuvchi barcha elementlarni tanlamaganida, BACK tugmasini bosganida yoki satrning chap tomonida Bajarilgan amalni tanlaganida kontekstli harakatlar paneli yo'qoladi .
Kontekstli harakatlarni ta'minlaydigan ko'rinishlar uchun odatda ikkita hodisadan biriga (yoki ikkalasiga) ham kontekstli harakat rejimini kiritish kerak:
Foydalanuvchi ko'rinishni uzoq marta bosishni amalga oshiradi.
Foydalanuvchi ko'rinishda katakchani yoki shunga o'xshash foydalanuvchi interfeysi komponentini tanlaydi.
Sizning arizangiz qanday qilib kontekstli harakat rejimini chaqirishi va har bir harakat uchun xatti-harakatni belgilashi sizning dizayningizga bog'liq. Asosan ikkita dizayn mavjud:
Shaxsiy, o'zboshimchalik bilan qarashlar bo'yicha kontekstli harakatlar uchun.
A ListViewyoki tarkibidagi elementlar guruhidagi kontekstli harakatlar uchun GridView(foydalanuvchiga bir nechta elementni tanlash va ularning hammasini bajarishga imkon berish).
Keyingi bo'limlarda har bir stsenariy uchun zarur bo'lgan sozlash tasvirlangan.
Shaxsiy ko'rinishlar uchun kontekstli harakat rejimini yoqish
Agar siz foydalanuvchi aniq ko'rinishni tanlaganda faqat kontekstli harakat rejimini chaqirmoqchi bo'lsangiz, quyidagilar kerak:
ActionMode.CallbackInterfeysni amalga oshirish . Qayta qo'ng'iroq qilish usullarida siz kontekstli harakatlar paneli uchun harakatlarni belgilashingiz, harakatlar elementlaridagi bosish voqealariga javob berishingiz va harakatlar rejimi uchun boshqa hayot aylanish jarayonlarini boshqarishingiz mumkin.
Qatorni ko'rsatmoqchi startActionMode()bo'lganingizda qo'ng'iroq qiling (masalan, foydalanuvchi ko'rinishni uzoq vaqt bosganda).
Masalan:
ActionMode.CallbackInterfeysni amalga oshirish :
private ActionMode.Callback actionModeCallback = new ActionMode.Callback() {
// Called when the action mode is created; startActionMode() was called
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
return true;
}
// Called each time the action mode is shown. Always called after onCreateActionMode, but
// may be called multiple times if the mode is invalidated.
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false; // Return false if nothing is done
}
// Called when the user selects a contextual menu item
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_share:
shareCurrentItem();
mode.finish(); // Action picked, so close the CAB
return true;
default:
return false;
}
}
// Called when the user exits the action mode
@Override
public void onDestroyActionMode(ActionMode mode) {
actionMode = null;
}
};
E'tibor bering, ushbu voqea qo'ng'iroqlari variantlar menyusidagi qo'ng'iroqlar bilan deyarli bir xil , faqat ularning har biri ActionModevoqea bilan bog'liq ob'ektni ham o'tkazadi. Siz ActionModeCAB-ga turli xil o'zgartirishlar kiritish uchun API-lardan foydalanishingiz mumkin , masalan, sarlavha va subtitrni qayta ko'rib chiqish setTitle()va setSubtitle()(qancha element tanlanganligini ko'rsatish uchun foydalidir).
Shuni ham e'tiborga olingki, yuqoridagi namuna actionModeo'zgaruvchan parametrni nullharakat rejimi buzilganda o'rnatadi . Keyingi bosqichda siz uni qanday boshlanganligini va sizning a'zolaringiz o'zgaruvchisini o'zingizning faoliyatingizda yoki qismingizda saqlash qanday foydali bo'lishi mumkinligini ko'rasiz.
startActionMode()Kerakli vaqtda kontekstli harakat rejimini yoqish uchun qo'ng'iroq qiling , masalan View:
someView.setOnLongClickListener(new View.OnLongClickListener() {
// Called when the user long-clicks on someView
public boolean onLongClick(View view) {
if (actionMode != null) {
return false;
}
// Start the CAB using the ActionMode.Callback defined above
actionMode = getActivity().startActionMode(actionModeCallback);
view.setSelected(true);
return true;
}
});
Do'stlaringiz bilan baham: |