Есть ли способ, чтобы на андроиде сохранить строку состояния, отключив все взаимодействие, которое вы можете сделать с ним, например, потянув его вниз? Я хочу сохранить информацию, которую предоставляет этот бар, но я не хочу, чтобы пользователи взаимодействовали с ней.Android отключить взаимодействие строки состояния
ответ
Это метод, который мне нравится использовать. Вы можете развернуть его из метода и поместить его внутри базовой операции. iirc, я тоже получил это от StackOverflow, но я этого не заметил, поэтому я не уверен, где находится исходный пост.
В основном это то, что накладывается прозрачная надпись поверх верхней панели, которая перехватывает все события касания. До сих пор это работало хорошо, посмотрите, как это работает для вас.
вам может понадобиться поставить эту строку в AndroidManifest:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
я его в моем проекте, но я не могу вспомнить, если это из-за этого или что-то другое. Если вы получаете ошибку разрешения, добавить, что в.
WindowManager manager;
CustomViewGroup lockView;
public void lock(Activity activity) {
//lock top notification bar
manager = ((WindowManager) activity.getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE));
WindowManager.LayoutParams topBlockParams = new WindowManager.LayoutParams();
topBlockParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
topBlockParams.gravity = Gravity.TOP;
topBlockParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|
// this is to enable the notification to recieve touch events
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
// Draws over status bar
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
topBlockParams.width = WindowManager.LayoutParams.MATCH_PARENT;
topBlockParams.height = (int) (50 * activity.getResources()
.getDisplayMetrics().scaledDensity);
topBlockParams.format = PixelFormat.TRANSPARENT;
lockView = new CustomViewGroup(activity);
manager.addView(lockView, topBlockParams);
}
и CustomViewGroup является
private class CustomViewGroup extends ViewGroup {
Context context;
public CustomViewGroup(Context context) {
super(context);
this.context = context;
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
Log.i("StatusBarBlocker", "intercepted by "+ this.toString());
return true;
}
}
Также! Вы также должны удалить это представление, когда ваша активность закончится, потому что я думаю, что он продолжит блокировать экран даже после того, как вы убьете приложение. Всегда, всегда ВСЕГДА вызывайте это onPause и onDestroy.
if (lockView!=null) {
if (lockView.isShown()) {
//unlock top
manager.removeView(lockView);
}
}
У меня есть идея. Мой взгляд aleady использует LAYOUT_IN_SCREEN по какой-то непонятной причине, поэтому мне просто нужно добавить прозрачную строку в верхней части экрана. Является ли высота 50 одинаковой для всех устройств? – Laetan
Высота изменяется от разрешения устройства, manufecturer также .. поэтому он не одинаковый для всех устройств – Kushal
Есть ли способ получить размер этого бара во время выполнения? – Laetan
- 1. Включить/отключить строку состояния Android
- 2. Настройка строки состояния Android
- 3. Android: слайдер строки состояния
- 4. Цвет строки состояния, Android
- 5. Отключить событие click для строки состояния в android
- 6. Отключить/Скрыть строку состояния в Android
- 7. Отключить взаимодействие окон iOS
- 8. ViewController отключить взаимодействие - iOS
- 9. Отключить взаимодействие UISlider временно
- 10. Отключить взаимодействие в Spannable
- 11. Android Скрытие строки состояния после выхода
- 12. Как программно отключить панель состояния Android?
- 13. Как отключить строку состояния в android?
- 14. как отключить строку состояния в android
- 15. Android: скачкообразный эффект строки состояния
- 16. Android портирование - настройка строки состояния
- 17. Простая реализация строки состояния Android?
- 18. Элегантный способ отключения строки состояния?
- 19. Как отключить взаимодействие кнопки отмены?
- 20. отключить взаимодействие касания в UITableView
- 21. Cocoa webView - отключить все взаимодействие
- 22. Android-взаимодействие с Android
- 23. Отключить взаимодействие пользователя, когда didSelectRowIndexPathRow называется
- 24. Отключить взаимодействие пользователя в течение нескольких секунд. Android
- 25. Как отключить взаимодействие пользователя с относительной компоновкой в Android
- 26. Взаимодействовать взаимодействие компонентов и глобальные изменения состояния
- 27. jQuery Взаимодействие Cues для стиля состояния ошибки
- 28. Как отключить индикатор состояния?
- 29. Android-взаимодействие между людьми
- 30. Взаимодействие с Android-гамбургером
В строке состояния вы имеете в виду черную полосу на самом верху, которая содержит время, батарею и т. Д.? –
Да, этот. Разве это не правильное имя? – Laetan
Возможно, я просто хотел быть ясным, прежде чем набрал что-то. –