Repository: lzyzsd/LoadingLayout Branch: master Commit: b8b774ffd03b Files: 48 Total size: 48.3 KB Directory structure: gitextract_fzwghys6/ ├── .gitignore ├── .idea/ │ ├── .name │ ├── compiler.xml │ ├── copyright/ │ │ └── profiles_settings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── LoadingLayout.iml ├── README.md ├── app/ │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── xiaomagouche/ │ │ └── com/ │ │ └── loadinglayout/ │ │ └── ApplicationTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xiaomagouche/ │ │ │ └── com/ │ │ │ └── loadinglayout/ │ │ │ ├── .gitignore │ │ │ └── MainActivity.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ └── empty_view.xml │ │ ├── menu/ │ │ │ └── menu_main.xml │ │ ├── values/ │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ └── test/ │ └── java/ │ └── com/ │ └── xiaomagouche/ │ └── com/ │ └── loadinglayout/ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── library/ │ ├── .gitignore │ ├── build.gradle │ ├── library.iml │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── xiaomagouche/ │ │ └── loadinglayout/ │ │ └── library/ │ │ └── ApplicationTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xiaomagouche/ │ │ │ └── loadinglayout/ │ │ │ └── library/ │ │ │ └── LoadingLayout.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── empty_view.xml │ │ │ ├── error_view.xml │ │ │ └── loading_view.xml │ │ └── values/ │ │ ├── attrs.xml │ │ ├── ids.xml │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── xiaomagouche/ │ └── loadinglayout/ │ └── library/ │ └── ExampleUnitTest.java └── settings.gradle ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ .gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build /captures ================================================ FILE: .idea/.name ================================================ LoadingLayout ================================================ FILE: .idea/compiler.xml ================================================ ================================================ FILE: .idea/copyright/profiles_settings.xml ================================================ ================================================ FILE: .idea/gradle.xml ================================================ ================================================ FILE: .idea/misc.xml ================================================ 1.8 ================================================ FILE: .idea/modules.xml ================================================ ================================================ FILE: .idea/runConfigurations.xml ================================================ ================================================ FILE: .idea/vcs.xml ================================================ ================================================ FILE: LoadingLayout.iml ================================================ ================================================ FILE: README.md ================================================ ## LoadingLayout 方便的切换到加载中,空页面,出错页面和内容页面 ![效果图](https://github.com/XMFE-TEAM/LoadingLayout/raw/master/demo/demo.gif) LoadingLayout集成自Framelayout,默认把第一个子view当做内容视图,其他的子view会被忽略 使用如下: ``` ``` 可以通过代码来切换到不同的view ``` final LoadingLayout loadingLayout = (LoadingLayout) findViewById(R.id.loading_layout); findViewById(R.id.btn_show_content).setOnClickListener((view) -> loadingLayout.showContent()); findViewById(R.id.btn_show_error).setOnClickListener((view) -> loadingLayout.showError()); findViewById(R.id.btn_show_empty).setOnClickListener((view) -> loadingLayout.showEmpty()); findViewById(R.id.btn_show_loading).setOnClickListener((view) -> loadingLayout.showLoading()); ``` 另外,针对errorView和emptyView,提供了两个重新加载的按钮。 需要注意的是,这里的重新加载的按钮的id必须是btn_error_retry或者btn_empty_retry ``` loadingLayout.setOnRetryClickListener((view) -> loadingLayout.showLoading()); ``` 当然,你也可以自己自定义各种视图 ``` ``` ## Gradle中使用 推荐使用jitpack ``` repositories { // ... maven { url "https://jitpack.io" } } dependencies { compile 'com.github.lzyzsd:XMFE-TEAM:LoadingLayout:0.1.0' } ``` ## License MIT ================================================ FILE: app/.gitignore ================================================ /build ================================================ FILE: app/app.iml ================================================ ================================================ FILE: app/build.gradle ================================================ apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.xiaomagouche.com.loadinglayout" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility 1.8 targetCompatibility JavaVersion.VERSION_1_6 } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:22.2.1' compile project(':library') } ================================================ FILE: app/proguard-rules.pro ================================================ # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Users/bruce/Downloads/sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} ================================================ FILE: app/src/androidTest/java/com/xiaomagouche/com/loadinglayout/ApplicationTest.java ================================================ package com.xiaomagouche.com.loadinglayout; import android.app.Application; import android.test.ApplicationTestCase; /** * Testing Fundamentals */ public class ApplicationTest extends ApplicationTestCase { public ApplicationTest() { super(Application.class); } } ================================================ FILE: app/src/main/AndroidManifest.xml ================================================ ================================================ FILE: app/src/main/java/com/xiaomagouche/com/loadinglayout/.gitignore ================================================ #built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Windows thumbnail db Thumbs.db # OSX files .DS_Store # Eclipse project files .classpath .project # Android Studio .idea #.idea/workspace.xml - remove # and delete .idea if it better suit your needs. .gradle build/ # Signing files .signing/ # User-specific configurations .idea/libraries/ .idea/workspace.xml .idea/tasks.xml .idea/.name .idea/compiler.xml .idea/copyright/profiles_settings.xml .idea/encodings.xml .idea/misc.xml .idea/modules.xml .idea/scopes/scope_settings.xml .idea/vcs.xml *.iml ================================================ FILE: app/src/main/java/com/xiaomagouche/com/loadinglayout/MainActivity.java ================================================ package com.xiaomagouche.com.loadinglayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.xiaomagouche.loadinglayout.library.LoadingLayout; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final LoadingLayout loadingLayout = (LoadingLayout) findViewById(R.id.loading_layout); findViewById(R.id.btn_show_content).setOnClickListener((view) -> loadingLayout.showContent()); findViewById(R.id.btn_show_error).setOnClickListener((view) -> loadingLayout.showError()); findViewById(R.id.btn_show_empty).setOnClickListener((view) -> loadingLayout.showEmpty()); findViewById(R.id.btn_show_loading).setOnClickListener((view) -> loadingLayout.showLoading()); loadingLayout.setOnRetryClickListener((view) -> loadingLayout.showLoading()); } } ================================================ FILE: app/src/main/res/layout/activity_main.xml ================================================