В настоящее время я пытаюсь создать приложение для Android с Xamarin Studio (aka monodroid). Моя проблема заключается в следующем:
В моей деятельности-х OnCreate
я называюActionbar keep hiding
this.RequestWindowFeature(WindowFeatures.ActionBar);
this.RequestWindowFeature(WindowFeatures.ActionModeOverlay);
Кроме того, я добавил это переопределение к деятельности:
public override Boolean OnTouchEvent(MotionEvent e)
{
if (this.ActionBar.IsShowing)
{
this.ActionBar.Hide();
}
else
{
this.ActionBar.Show();
}
return base.OnTouchEvent(e);
}
Это, однако, не работает, как я ожидал это: Когда я впервые нажимаю на Activity, панель скрыта. Следующий щелчок показывает его, но он даже не полностью отображается в поле зрения, прежде чем он снова отступит. Кроме того, он, похоже, «втиснет» содержимое Activity, чего он не должен делать, так как я добавил WindowFeatures.ActionModeOverlay
.
Что мне не хватает?
EDIT: Я уверен, что сам метод срабатывает только один раз в контакт (я зарегистрировал счетчик для диагностики).
Кроме того, я не show()
/hide()
ActionBar где-нибудь еще.
EDIT 2: Я был уверен, но, вероятно, перепутала диагностический подход. :/
После добавления
if (e.Action == MotionEventActions.Cancel
|| e.Action == MotionEventActions.Up)
{
return base.OnTouchEvent(e);
}
он ведет себя, как ожидалось.
Я не уверен, что мы имеем одинаковую вещь. В панели действий нет __not__, что, например, устройства Nexus вместо аппаратных кнопок. Это то, что находится под заголовком (в приложениях, которые используют голографические темы). –
О, да, да, я всегда получаю эти путаные извинения – Paperwaste
Бывает! Получили ли какие-либо советы по другому шагу? –