📜  Android中的LoadingButton

📅  最后修改于: 2021-05-09 16:40:16             🧑  作者: Mango

在本文中,在Android中添加了LoadingButton 。每当用户点击它时, LoadingButton就会为我们提供令人惊叹的UI和动画。在应用程序中添加一个LoadingButton非常容易。它与android中的Button非常相似,只需添加依赖项和一些属性。诸如BL_backgroundColorBL_circleColorBL_circleColorSecondBL_stateShow之类的标签可用于自定义“加载按钮” 。在开发人员希望用户等待一段时间的任何地方都可以使用“加载按钮视图”。我们也可以使用进度栏代替它,但是“加载按钮”提供了独特而诱人的UI并增加了用户体验。它也可以为开发人员提供完全控制,因为可以根据要求进行自定义。

方法:

步骤1:在根build.gradle文件(而不是模块build.gradle文件)中添加支持库。这个库jitpack是一个新颖的软件包存储库。它是为JVM设计的,因此github和bigbucket中存在的任何库都可以直接在应用程序中使用。

XML
allprojects {           
 repositories {           
        maven { url 'https://jitpack.io' }           
     }          
}


XML
dependencies {     
      //For Snackbar 
      implementation 'com.google.android.material:material:1.1.0'     
        
      //For LoadingButton
      implementation 'com.github.andreasagap:LoadingButtonLibrary:v1.0'
}


activity_main.xml

  
    
  


MainActivity.java
package org.geeksforgeeks.loadingbutton          
  
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
import andreasagap.loadingbutton.ButtonLoading;
  
public class MainActivity extends AppCompatActivity {
    ButtonLoading loading_button;
    ConstraintLayout layout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        layout = findViewById(R.id.root);
        loading_button =findViewById(R.id.loadingbutton);
        loading_button.setRoot(loading_button,this, layout);
  
        //set OnClickListner to button
        loading_button.setOnButtonLoadingListener(
                new ButtonLoading.OnButtonLoadingListener() {
            @Override
            public void onClick() {
            }
            @Override
            public void onStart() {
                Toast.makeText(MainActivity.this,
                        "Loading Start", Toast.LENGTH_LONG).show();
            }
            @Override
            public void onFinish() {
                //show snackbar when loading finished
                Snackbar.make(layout, "Thank you for
                        buying our Course!",
                        BaseTransientBottomBar
                       .LENGTH_LONG)
                       .show();
            }
        });
    }
  
    @Override
    public void onBackPressed() {
        loading_button.cancel();
    }
}


步骤2:build.gradle文件中添加支持库,并在“依赖项”部分中添加依赖项。

XML格式

dependencies {     
      //For Snackbar 
      implementation 'com.google.android.material:material:1.1.0'     
        
      //For LoadingButton
      implementation 'com.github.andreasagap:LoadingButtonLibrary:v1.0'
}          

步骤3:activity_main.xml文件中添加以下代码。在此文件中,我们将我们的LoadingButton添加到布局中。

activity_main.xml


  
    
  

步骤4:在MainActivity中添加以下代码。 Java文件。在此文件中,将“加载按钮”附加到根布局,然后向其添加侦听器。因此,每当用户点击它时, setOnButtonLoadingListener都会自动被调用。在侦听器内部,存在三种方法onClick(),onStart()和onFinish()。在onClick方法内,添加单击按钮时应执行的代码,在onStart()方法中,添加单击按钮时应立即执行的代码,在onFinish()方法中,添加在单击按钮后执行的代码。执行其他两个功能。

主要活动。Java

package org.geeksforgeeks.loadingbutton          
  
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
import andreasagap.loadingbutton.ButtonLoading;
  
public class MainActivity extends AppCompatActivity {
    ButtonLoading loading_button;
    ConstraintLayout layout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        layout = findViewById(R.id.root);
        loading_button =findViewById(R.id.loadingbutton);
        loading_button.setRoot(loading_button,this, layout);
  
        //set OnClickListner to button
        loading_button.setOnButtonLoadingListener(
                new ButtonLoading.OnButtonLoadingListener() {
            @Override
            public void onClick() {
            }
            @Override
            public void onStart() {
                Toast.makeText(MainActivity.this,
                        "Loading Start", Toast.LENGTH_LONG).show();
            }
            @Override
            public void onFinish() {
                //show snackbar when loading finished
                Snackbar.make(layout, "Thank you for
                        buying our Course!",
                        BaseTransientBottomBar
                       .LENGTH_LONG)
                       .show();
            }
        });
    }
  
    @Override
    public void onBackPressed() {
        loading_button.cancel();
    }
}

输出:

参考: https : //github.com/andreasagap/LoadingButtonLibrary

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