我在Xamarin Forms上开发了一个跨平台的应用程序。我正在使用MasterDetailPage类型导航。我在内容页面中添加了一个工具栏,并将Order
属性设置为“辅助”,因此它显示在右侧的菜单上。
当我按下ToolbarItem时,它会在消失之前“飞”到屏幕的左上角。无论如何修改这个动画还是只删除它?。
答案 0 :(得分:0)
我终于找到了这个问题的答案。只需将以下行添加到def default_redirect
redirect_to surveys_path, notice: I18n.t("surveys_controller.# {action_name}")
end
def load_survey
@survey = Survey::Survey.new(params[:id])
end
,就不再有草率动画了:
class SurveysController < ApplicationController
# before_filter :load_survey, only: [:show, :edit, :update, :destroy]
before_action :load_survey, only: [:show, :edit, :update, :destroy]
def index
type = view_context.get_survey_type(params[:type])
query = if type then Survey::Survey.where(survey_type: type) else
Survey::Survey end
@surveys = query.order(created_at: :desc).page(params[:page]).per(15)
end
def new
@survey = Survey::Survey.new(survey_type: view_context.get_survey_type(params[:type]))
end
def create
@survey = Survey::Survey.new(params_whitelist)
if @survey.valid? && @survey.save
default_redirect
else
build_flash(@survey)
render :new
end
end
def edit
end
def show
end
def update
if @survey.update_attributes(params_whitelist)
default_redirect
else
build_flash(@survey)
render :edit
end
end
def destroy
@survey.destroy
default_redirect
end
private
def default_redirect
redirect_to surveys_path, notice: I18n.t("surveys_controller.#{action_name}")
end
def load_survey
@survey = Survey::Survey.find(params[:id])
end
def params_whitelist
params.require(:survey_survey).permit(Survey::Survey::AccessibleAttributes << :survey_type)
end
end
答案 1 :(得分:0)
我知道这有点晚了,但是我找到了这个问题的答案)) 基本上,它更多是错误而不是动画。当没有时间在导航到新页面之前关闭工具栏菜单时,就会发生这种情况。 因此,在我的项目中,我通过做一些延迟(〜200毫秒,甚至可能更少)来解决此问题,以给菜单时间关闭自身并在延迟后导航到一些新页面(延迟和导航都应发生在辅助菜单上)线程,这样您就不会阻塞UI,否则最终将等待延迟并遇到与以前相同的问题。