Xamarin表单ToolbarItem动画效果不佳

时间:2017-09-20 17:01:49

标签: c# xaml xamarin xamarin.forms

我在Xamarin Forms上开发了一个跨平台的应用程序。我正在使用MasterDetailPage类型导航。我在内容页面中添加了一个工具栏,并将Order属性设置为“辅助”,因此它显示在右侧的菜单上。 当我按下ToolbarItem时,它会在消失之前“飞”到屏幕的左上角。无论如何修改这个动画还是只删除它?。

2 个答案:

答案 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,否则最终将等待延迟并遇到与以前相同的问题。