2017-02-05 1 views
0

«общественного класса GrammarFragment расширяет фрагмент {Как добавить анимацию для отображения и скрытия панели действий в Android?

public GrammarFragment() { 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_grammar, container, false); 
    ObservableWebView webView = (ObservableWebView) v.findViewById(R.id.grammar_webview); 
    //webView.loadData("ABC", "text/html", "UTF-8"); 
    webView.loadUrl("file:///android_asset/grammar/danhtu.html"); 
    webView.setScrollViewCallbacks(new ObservableScrollViewCallbacks() { 
     @Override 
     public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { 
     } 
     @Override 
     public void onDownMotionEvent() { 
     } 
     @Override 
     public void onUpOrCancelMotionEvent(ScrollState scrollState) { 
      ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); 
      if (scrollState == ScrollState.UP) { 
       if (actionBar != null) actionBar.hide(); 
      } else if (scrollState == ScrollState.DOWN) { 
       if (actionBar != null) actionBar.show(); 
      } 
     } 
    }); 
    return v; 
} 

} ` Когда панель действий в настоящее время скрываются или показала, она исчезает или появляется на экране практически мгновенно без плавной анимации скольжения вниз или вверх. Есть ли способ настроить его, чтобы показать или скрыть гладко?

+0

вставить код –

+0

Какой макет вы используете? Вы используете 'CoordinatorLayout' или что-то еще? –

ответ

0

Изменить код, как этот

Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); 
      if (scrollState == ScrollState.UP) { 
       if (toolbar != null) { 
        toolbar.animate().translationY(-toolbar.getBottom()). 
          setInterpolator(new AccelerateInterpolator()).start(); 
       } 
      } else if (scrollState == ScrollState.DOWN) { 
       if (toolbar != null) 
        toolbar.animate().translationY(0). 
          setInterpolator(new DecelerateInterpolator()).start(); 
      } 
+0

Я пробовал, но он не работает –

+0

, где вы разместили этот код? Этот код должен работать :( –

+0

Я положил после этой строки «ActionBar actionBar = ((AppCompatActivity) getActivity()). GetSupportActionBar();» –