Упрощенная версия ответа Noundla, который работает для меня. Я написал свой пользовательский Drawer, который расширяет DrawerLayout
и реализует метод dispatchTouchEvent()
.
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (!this.isDrawerOpen(Gravity.LEFT)) {
return super.dispatchTouchEvent(event);
}
boolean isOutSideClicked = false;
if (event.getAction() == MotionEvent.ACTION_UP) {
View content = findViewById(R.id.drawer_view);
int[] contentLocation = new int[2];
content.getLocationOnScreen(contentLocation);
Rect rect = new Rect(contentLocation[0],
contentLocation[1],
contentLocation[0] + content.getWidth(),
contentLocation[1] + content.getHeight());
isOutSideClicked = !(rect.contains((int) event.getX(), (int) event.getY()));
}
this.setDrawerLockMode(isOutSideClicked ? DrawerLayout.LOCK_MODE_LOCKED_OPEN : DrawerLayout.LOCK_MODE_UNLOCKED);
return super.dispatchTouchEvent(event);
}
Также, если вы хотите продолжать взаимодействовать с основным фрагментом контента, когда ящик открыт, вы должны добавить эту строку в начале метода.
getChildAt(0).dispatchTouchEvent(event);
Довольно большой, если Ваш вопрос, "что является емкостью хранения mnesia базы данных, составленной из огромного количества disc_only_copies
таблицы" - Вы в основном ограничены доступным дисковым пространством.
более легкий вопрос ответить - то, что является максимальной способностью единственной mnesia таблицы различных типов. ram_copies
таблицы ограничены доступной памятью. disc_copies
таблицы ограничены их dets
бэкенд ( Hakan Mattsson на Mnesia) - этот предел составляет 4 ГБ данных в данный момент.
, Таким образом, простой ответ - то, что простой disc_copies
таблица может сохранить до 4 ГБ данных, прежде чем они столкнутся с проблемами. ( Mnesia на самом деле не отказывает при превышении дискового предела размера - ram_copies часть таблицы продолжает работать, таким образом, можно восстановить это путем удаления данных или делания других приготовлений во времени выполнения )
Однако, если Вы рассматриваете другие mnesia функции, затем ответ более сложен.
local_content
таблицы. Если таблица local_content
таблица, то она может иметь различное содержание на каждом узле в mnesia кластере, таким образом, способность таблицы 4Gb * <number of nodes>
4Gb * <number of fragments>
. ( Печально при фрагментации таблицы затем необходимо изменить код доступа таблицы для использования mnesia:activity/4
вместо [1 110] и друзья, но если Вы планируете это заранее, это - managable) Согласно документации, это - 4 ГБ. Разделите 11.5