-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Terminada la construcción de la app de postres, necesaria para compre…
…nder mejor la nueva implementación de navigation en android, las transiciones, y animaciones aplicadas con navcontroler y el paso de argumentos a través del mismo
- Loading branch information
Showing
25 changed files
with
572 additions
and
58 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
47 changes: 47 additions & 0 deletions
47
Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/CarAdapter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package com.barryzeha.mdpostres; | ||
|
||
import android.view.LayoutInflater; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.recyclerview.widget.RecyclerView; | ||
|
||
import com.barryzeha.mdpostres.databinding.ItemCarBinding; | ||
|
||
public class CarAdapter extends RecyclerView.Adapter<CarAdapter.ViewHolder> { | ||
private String[] products; | ||
|
||
public CarAdapter(String[] products) { | ||
this.products = products; | ||
} | ||
|
||
@NonNull | ||
@Override | ||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | ||
ItemCarBinding bind=ItemCarBinding.inflate(LayoutInflater.from(parent.getContext()),parent,false); | ||
|
||
return new ViewHolder(bind); | ||
} | ||
|
||
@Override | ||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { | ||
holder.bind(products[position]); | ||
} | ||
|
||
@Override | ||
public int getItemCount() { | ||
return products.length; | ||
} | ||
|
||
public class ViewHolder extends RecyclerView.ViewHolder { | ||
private ItemCarBinding bind; | ||
public ViewHolder(@NonNull ItemCarBinding itemView) { | ||
super(itemView.getRoot()); | ||
bind=itemView; | ||
} | ||
protected void bind(String product){ | ||
bind.tvName.setText(product); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
...onents_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ConfirmationFragment.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
package com.barryzeha.mdpostres; | ||
|
||
import android.os.Bundle; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.annotation.Nullable; | ||
import androidx.fragment.app.Fragment; | ||
import androidx.navigation.fragment.NavHostFragment; | ||
|
||
import android.view.LayoutInflater; | ||
import android.view.Menu; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
|
||
import com.barryzeha.mdpostres.databinding.FragmentConfirmationBinding; | ||
import com.google.android.material.transition.MaterialFadeThrough; | ||
import com.google.android.material.transition.MaterialSharedAxis; | ||
|
||
public class ConfirmationFragment extends Fragment { | ||
|
||
|
||
private FragmentConfirmationBinding bind; | ||
|
||
@Override | ||
public void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setHasOptionsMenu(true); | ||
setEnterTransition(new MaterialSharedAxis(MaterialSharedAxis.X, true)); | ||
setReturnTransition(new MaterialSharedAxis(MaterialSharedAxis.X, false)); | ||
setExitTransition(new MaterialFadeThrough()); | ||
} | ||
|
||
@Override | ||
public View onCreateView(LayoutInflater inflater, ViewGroup container, | ||
Bundle savedInstanceState) { | ||
// Inflate the layout for this fragment | ||
bind=FragmentConfirmationBinding.inflate(inflater, container, false); | ||
return bind.getRoot(); | ||
} | ||
|
||
@Override | ||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { | ||
super.onViewCreated(view, savedInstanceState); | ||
bind.btnDone.setOnClickListener(v->{ | ||
NavHostFragment.findNavController(this).navigate(R.id.action_confirmation_to_product); | ||
}); | ||
} | ||
|
||
@Override | ||
public void onPrepareOptionsMenu(@NonNull Menu menu) { | ||
menu.clear(); | ||
super.onPrepareOptionsMenu(menu); | ||
} | ||
} |
58 changes: 56 additions & 2 deletions
58
...ial_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/MainActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,68 @@ | ||
package com.barryzeha.mdpostres; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.appcompat.app.AppCompatActivity; | ||
import androidx.navigation.NavController; | ||
import androidx.navigation.Navigation; | ||
import androidx.navigation.ui.AppBarConfiguration; | ||
import androidx.navigation.ui.NavigationUI; | ||
|
||
import android.os.Bundle; | ||
import android.view.Menu; | ||
import android.view.MenuItem; | ||
|
||
public class MainActivity extends AppCompatActivity { | ||
import com.barryzeha.mdpostres.databinding.ActivityMainBinding; | ||
import com.google.android.material.bottomsheet.BottomSheetBehavior; | ||
|
||
public class MainActivity extends AppCompatActivity { | ||
private ActivityMainBinding bind; | ||
private NavController navController; | ||
private BottomSheetBehavior bottomSheetBehavior; | ||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
bind = ActivityMainBinding.inflate(getLayoutInflater()); | ||
setContentView(bind.getRoot()); | ||
|
||
setSupportActionBar(bind.toolbar); | ||
navController= Navigation.findNavController(this, R.id.nav_host_fragment); | ||
|
||
AppBarConfiguration appBarConfiguration= new AppBarConfiguration.Builder(navController.getGraph()).build(); | ||
NavigationUI.setupWithNavController(bind.toolbar, navController, appBarConfiguration); | ||
//para quitar el ícono de back del toolbar por medio de navigation hacemos lo siguiente | ||
|
||
navController.addOnDestinationChangedListener((controller, destination, arguments) -> { | ||
//mantenemos el título del toolbar | ||
bind.toolbar.setTitle(destination.getLabel()); | ||
//quitamos el bobon de regresar | ||
bind.toolbar.setNavigationIcon(null); | ||
}); | ||
bottomSheetBehavior=BottomSheetBehavior.from(bind.bottomSheet.bottomSheet); | ||
bottomSheetBehavior.setState(bottomSheetBehavior.STATE_HIDDEN); | ||
bind.bottomSheet.ivClose.setOnClickListener(v-> bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN)); | ||
bind.bottomSheet.btnExit.setOnClickListener(v-> finish()); | ||
|
||
} | ||
|
||
@Override | ||
public boolean onCreateOptionsMenu(Menu menu) { | ||
getMenuInflater().inflate(R.menu.main_menu, menu); | ||
return super.onCreateOptionsMenu(menu); | ||
} | ||
|
||
@Override | ||
public boolean onOptionsItemSelected(@NonNull MenuItem item) { | ||
/* if(item.getItemId()==R.id.itemConfirmation){ | ||
navController.navigate(R.id.action_global_confirmation); | ||
} | ||
return super.onOptionsItemSelected(item);*/ | ||
//Ahora haremos navegación por id | ||
return NavigationUI.onNavDestinationSelected(item, navController)|| | ||
super.onOptionsItemSelected(item); | ||
} | ||
|
||
@Override | ||
public void onBackPressed() { | ||
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); | ||
} | ||
} |
Oops, something went wrong.