📜  以示例为主题的Android中的Material Design小吃店主题

📅  最后修改于: 2021-05-13 15:15:58             🧑  作者: Mango

在上一篇文章中,已经讨论了Android中的Snackbar Material Design组件。在本文中,已经讨论了如何为主题材质设计Snackbar和增加用户体验。

主题示例1:

  • 此方法是使用styles.xml文件完成的。在这里我们需要覆盖Snackbar的默认样式。
  • 看一下下面的图片,您可以在Snackbar上自定义所有内容。

Android中的主题材质设计小吃店

  • 通过实现此方法,所有小吃店都将受到这些样式属性的影响。
  • 在此自定义设置中,背景色和操作按钮的文本颜色被更改。
  • 这使用户可以专注于操作,并且他们可以根据小吃栏上显示的消息执行所需的操作。
  • 这也防止了用户不必要地点击动作按钮。
XML

  
    
    
  
    
  
    
    
    
    
  
    
    
  


Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.material.snackbar.Snackbar;
  
public class MainActivity extends AppCompatActivity {
  
    // Button to show the snackbar
    Button bShowSnackbar;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // register the show snackbar button with the
        // appropriate ID
        bShowSnackbar = findViewById(R.id.show_snackbar_button);
  
        // button click listener to show the snackbar
        bShowSnackbar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // pass the mSnackbarLayout as the view
                // to the make function
                Snackbar snackbar = Snackbar.make(v, "You have deleted an item", Snackbar.LENGTH_LONG);
                snackbar.setAction("UNDO", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // perform any action when the button on the snackbar is clicked here in this case it
                          // shows a simple toast
                        Toast.makeText(MainActivity.this, "The item has been restored", Toast.LENGTH_SHORT).show();
                    }
                });
                // the duration is in terms of milliseconds
                snackbar.setDuration(3000);
                // set the background tint color for the snackbar
                snackbar.setBackgroundTint(getResources().getColor(R.color.colorPrimary));
                // set the action button text color of the snackbar however this is optional
                // as all the snackbar wont have the action button
                snackbar.setActionTextColor(getResources().getColor(R.color.actionTextColorForSnackbar));
                snackbar.show();
            }
        });
    }
}


XML

  
    
    
  
    
  
    
    
    
    
  
    
    
  


输出:在模拟器上运行

主题示例2:

  • 这种实现方法仅对特定的小吃店进行更改,而不对所有小吃店进行更改。
  • 通过以编程方式设置所有内容,可以实现相同的目的。
  • 现在与MainActivity合作。 Java文件。

Java

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.material.snackbar.Snackbar;
  
public class MainActivity extends AppCompatActivity {
  
    // Button to show the snackbar
    Button bShowSnackbar;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // register the show snackbar button with the
        // appropriate ID
        bShowSnackbar = findViewById(R.id.show_snackbar_button);
  
        // button click listener to show the snackbar
        bShowSnackbar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // pass the mSnackbarLayout as the view
                // to the make function
                Snackbar snackbar = Snackbar.make(v, "You have deleted an item", Snackbar.LENGTH_LONG);
                snackbar.setAction("UNDO", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // perform any action when the button on the snackbar is clicked here in this case it
                          // shows a simple toast
                        Toast.makeText(MainActivity.this, "The item has been restored", Toast.LENGTH_SHORT).show();
                    }
                });
                // the duration is in terms of milliseconds
                snackbar.setDuration(3000);
                // set the background tint color for the snackbar
                snackbar.setBackgroundTint(getResources().getColor(R.color.colorPrimary));
                // set the action button text color of the snackbar however this is optional
                // as all the snackbar wont have the action button
                snackbar.setActionTextColor(getResources().getColor(R.color.actionTextColorForSnackbar));
                snackbar.show();
            }
        });
    }
}

输出:在模拟器上运行

主题示例3:

  • 更改快餐栏的动画模式。
  • 通过更改Snackbar进入和退出的动画,这也增加了用户体验,使用户将注意力集中在他们在Snackbar上收到的消息上,并根据消息执行操作。
  • 看一下下面的图片,以了解Snackbar的动画模式之间的区别。

Android中的主题材质设计小吃店

  • 材质设计为Snackbar提供了两种类型的动画模式。一种是淡入淡出动画(这是默认设置),另一种是幻灯片动画。
  • 必须在styles.xml文件中调用以下代码。在这种情况下,将Snackbar动画模式设置为幻灯片。

XML格式


  
    
    
  
    
  
    
    
    
    
  
    
    
  

输出:在模拟器上运行

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!