Android Come implementare il foglio di fondo da documenti di progettazione di materiali

Come implementi la definizione del foglio di fondo? http://www.google.com/design/spec/components/bottom-sheets.html

Il nuovo aggiornamento a Google Drive mostra questo con il button Action Action Floating ->

  • C'è un modo per aggiungere un badge ad un'icona di applicazione in Android?
  • Come utilizzare notifyDataSetChanged
  • Cambiare il colore con LinearLayout e TextView in Java (Android)
  • Come configurare Google Cloud Messaging per Android?
  • Con lo studio android no jvm trovato, JAVA_HOME è stato impostato
  • Android KitKat: android.view.InflateException: errore di gonfiaggio della class android.support.design.widget.NavigationView
  • immettere qui la descrizione dell'immagine

    Dato che le specifiche non dicono mai niente sugli angoli arrotondati, a prescindere che sia ansible fare, non sappiamo come avviene. Attualmente utilizza la libreria AppCompat e il target impostato a 21.

    Grazie

    7 Solutions collect form web for “Android Come implementare il foglio di fondo da documenti di progettazione di materiali”

    Modifica

    Il BottomSheet è ora parte della android-support-library . Vedi risposta di John Shelleys .


    Purtroppo non c'è attualmente alcun modo "ufficiale" su come farlo (alless non ne sono a conoscenza).
    Fortunatamente c'è una libreria chiamata "BottomSheet" (clic) che imita l'aspetto del BottomSheet e support Android 2.1 e BottomSheet successive.

    Nel caso dell'applicazione Drive, ecco come potrebbe apparire il codice con questa libreria:

      new BottomSheet.Builder(this, R.style.BottomSheet_Dialog) .title("New") .grid() // <-- importnt part .sheet(R.menu.menu_bottom_sheet) .listener(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO } }).show(); 

    menu_bottom_sheet (fondamentalmente una risorsa standard /res/menu/*.xml)

     <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/folder" android:title="Folder" android:icon="@drawable/ic_action_folder" /> <item android:id="@+id/upload" android:title="Upload" android:icon="@drawable/ic_action_file_upload" /> <item android:id="@+id/scan" android:title="Scan" android:icon="@drawable/ic_action_camera_alt" /> </menu> 

    L'output sembra così:

    immagine del fondo

    Quale, credo, si avvicina molto all'originale. Se non sei soddisfatto dei colors che puoi personalizzare – vedi questo (clicca) .

    Rispondere alla mia domanda in modo che gli sviluppatori sappiano che la nuova libreria di supporto fornisce questo finalmente! Tutti salutano il potente Google!

    Un esempio del Blog Android Developer :

     // The View with the BottomSheetBehavior View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); behavior.setBottomSheetCallback(new BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // React to state change } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); 

    @ la risposta di reVerse sopra è ancora un'opzione valida ma è bello sapere che esiste uno standard che Google support anche.

    Ora è ansible utilizzare l'API Official BottomSheetBehavior dalla libreria di supporto Android 23.2.

    Di seguito è riportto lo snippet di codice di esempio

     bottomSheetBehavior = BottomSheetBehavior.from(findViewById(R.id.bottomSheet)); case R.id.expandBottomSheetButton: bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); break; case R.id.collapseBottomSheetButton: bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); break; case R.id.hideBottomSheetButton: bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); break; case R.id.showBottomSheetDialogButton: new MyBottomSheetDialogFragment().show(getSupportFragmentManager(), "sample"); 

    Si prega di fare riferimento all'indice Android BottomSheet youtube per get la comprensione su di esso.

    Seguendo il post del blog: http://android-developers.blogspot.com/2016/02/android-support-library-232.html

    Il mio xml finì per guardare così:

     <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/coordinator_layout" xmlns:app="http://schemas.android.com/apk/res-auto"> <LinearLayout android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> <ImageView android:src="@android:drawable/ic_input_add" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </android.support.design.widget.CoordinatorLayout> 

    E nel mio onCreateView del mio frammento:

      coordinatorLayout = (CoordinatorLayout)v.findViewById(R.id.coordinator_layout); View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); behavior.setPeekHeight(100); behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // React to state change } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); 

    Il default di setPeekHeight è 0, quindi se non lo imposta, non sarà ansible visualizzare la vista.

    Vorrei andare con gli angoli dritti come è nelle linee guida. Per quanto riguarda l'implementazione – forse è meglio utilizzare l'idea da questo progetto: https://github.com/umano/AndroidSlidingUpPanel

    Penso che potresti usarla come è o prendere l'idea per l'attuazione. Un altro grande articolo su come implementare un pannello di scorrimento simile può essere trovato qui: http://blog.neteril.org/blog/2013/10/10/framelayout-your-best-ui-friend/

    Ecco alcune delle altre opzioni:

    • C'è uno disponibile da Flipboard , tuttavia l'attività di incorporazione deve essere modificata per far funzionare il foglio di fondo.
    • il foglio di fondo di tutti-ch: questo è stato estratto da ResolverActivity di Android Repo e l'attività di lancio non deve essere modificata.

    Google ha recentemente pubblicato la Libreria di supporto Android 23.2 che port ufficialmente fogli Bottom alla libreria di supporto per il design di Android.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.