├── Imgs ├── GIF.gif └── GIFF.gif ├── README.md └── sdlirtext ├── .gitignore ├── Imgs ├── GIF.gif └── GIFF.gif ├── README.md ├── build.gradle ├── proguard-rules.pro ├── sdlirtext.iml └── src ├── androidTest └── java │ └── cn │ └── evun │ └── sdlirtext │ └── ExampleInstrumentedTest.java ├── main ├── AndroidManifest.xml ├── java │ └── cn │ │ └── evun │ │ └── sdlirtext │ │ ├── BaseActivity.java │ │ ├── BaseLeftBackActivity.java │ │ ├── LeftBackActivity.java │ │ ├── MainActivity.java │ │ ├── MyFragment.java │ │ ├── MyViewpager.java │ │ ├── SlidrActivity.java │ │ └── TopBackActivity.java └── res │ ├── anim │ ├── slide_in_bottom.xml │ ├── slide_in_left.xml │ ├── slide_in_right.xml │ ├── slide_in_top.xml │ ├── slide_out_bottom.xml │ ├── slide_out_left.xml │ ├── slide_out_right.xml │ └── slide_out_top.xml │ ├── drawable-xxhdpi │ └── andy.jpg │ ├── layout │ ├── activity_back.xml │ ├── activity_main.xml │ ├── base_left_back_activity.xml │ ├── fragment.xml │ ├── item.xml │ ├── slidr_activity.xml │ └── top_back_activity.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ └── values │ ├── colors.xml │ ├── strings.xml │ └── styles.xml └── test └── java └── cn └── evun └── sdlirtext └── ExampleUnitTest.java /Imgs/GIF.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/Imgs/GIF.gif -------------------------------------------------------------------------------- /Imgs/GIFF.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/Imgs/GIFF.gif -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/README.md -------------------------------------------------------------------------------- /sdlirtext/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /sdlirtext/Imgs/GIF.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/sdlirtext/Imgs/GIF.gif -------------------------------------------------------------------------------- /sdlirtext/Imgs/GIFF.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/sdlirtext/Imgs/GIFF.gif -------------------------------------------------------------------------------- /sdlirtext/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/sdlirtext/README.md -------------------------------------------------------------------------------- /sdlirtext/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion "26.0.1" 6 | 7 | defaultConfig { 8 | applicationId "cn.evun.sdlirtext" 9 | minSdkVersion 16 10 | targetSdkVersion 25 11 | versionCode 1 12 | versionName "1.0" 13 | 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | 16 | } 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | compile fileTree(dir: 'libs', include: ['*.jar']) 27 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 28 | exclude group: 'com.android.support', module: 'support-annotations' 29 | }) 30 | compile 'com.android.support:appcompat-v7:25.3.1' 31 | compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7' 32 | testCompile 'junit:junit:4.12' 33 | compile 'com.android.support:design:25.3.1' 34 | compile 'com.android.support:recyclerview-v7:25.3.1' 35 | compile 'com.r0adkll:slidableactivity:2.0.5' 36 | } 37 | -------------------------------------------------------------------------------- /sdlirtext/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /sdlirtext/sdlirtext.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /sdlirtext/src/androidTest/java/cn/evun/sdlirtext/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("cn.evun.sdlirtext", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /sdlirtext/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/BaseActivity.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v7.app.AppCompatActivity; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | /** 11 | * Created by Shuai.Li13 on 2017/8/10. 12 | */ 13 | 14 | public class BaseActivity extends AppCompatActivity { 15 | 16 | protected List mDatas=new ArrayList<>(); 17 | @Override 18 | protected void onCreate(@Nullable Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | 21 | initData(); 22 | } 23 | 24 | private void initData() { 25 | for (int i = 0; i < 12; i++) { 26 | mDatas.add("Tab"+i); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/BaseLeftBackActivity.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.LayoutRes; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.support.v7.app.ActionBar; 8 | import android.support.v7.app.AppCompatActivity; 9 | import android.support.v7.widget.Toolbar; 10 | import android.view.LayoutInflater; 11 | import android.view.View; 12 | import android.widget.FrameLayout; 13 | 14 | import com.r0adkll.slidr.Slidr; 15 | import com.r0adkll.slidr.model.SlidrConfig; 16 | import com.r0adkll.slidr.model.SlidrPosition; 17 | 18 | /** 19 | * Created by Shuai.Li13 on 2017/8/10. 20 | */ 21 | 22 | public class BaseLeftBackActivity extends BaseActivity { 23 | 24 | @Override 25 | protected void onCreate(@Nullable Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | 28 | initSlidr(); 29 | } 30 | 31 | private void initSlidr() { 32 | SlidrConfig config=new SlidrConfig.Builder() 33 | .position(SlidrPosition.LEFT)//滑动起始方向 34 | .edge(true) 35 | .edgeSize(0.18f)//距离左边界占屏幕大小的18% 36 | .build(); 37 | Slidr.attach(this,config); 38 | } 39 | 40 | @Override 41 | public void setContentView(@LayoutRes int layoutResID) { 42 | 43 | View contentView= LayoutInflater.from(this).inflate(R.layout.base_left_back_activity,null); 44 | FrameLayout flContainer= (FrameLayout) contentView.findViewById(R.id.flContainer); 45 | Toolbar toolbar= (Toolbar) contentView.findViewById(R.id.toolbar); 46 | setSupportActionBar(toolbar); 47 | View view=LayoutInflater.from(this).inflate(layoutResID,flContainer,false); 48 | flContainer.addView(view); 49 | super.setContentView(contentView); 50 | } 51 | protected ActionBar getToolbar(){ 52 | return getSupportActionBar(); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/LeftBackActivity.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.app.ActivityOptions; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.support.annotation.Nullable; 7 | import android.support.design.widget.TabLayout; 8 | import android.support.v4.app.Fragment; 9 | import android.support.v4.app.FragmentManager; 10 | import android.support.v4.app.FragmentPagerAdapter; 11 | import android.support.v4.view.ViewPager; 12 | import android.transition.Slide; 13 | 14 | import java.util.ArrayList; 15 | import java.util.List; 16 | 17 | /** 18 | * Created by Shuai.Li13 on 2017/8/10. 19 | */ 20 | 21 | public class LeftBackActivity extends BaseLeftBackActivity { 22 | 23 | @Override 24 | protected void onCreate(@Nullable Bundle savedInstanceState) { 25 | super.onCreate(savedInstanceState); 26 | setContentView(R.layout.activity_back); 27 | initView(); 28 | } 29 | 30 | @Override 31 | public void finish() { 32 | super.finish(); 33 | overridePendingTransition(0, R.anim.slide_in_right); 34 | } 35 | 36 | private void initView() { 37 | 38 | getToolbar().setTitle("LeftBackActivity"); 39 | TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 40 | ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 41 | MyAdapter adapter=new MyAdapter(getSupportFragmentManager()); 42 | viewPager.setAdapter(adapter); 43 | tabLayout.setupWithViewPager(viewPager); 44 | } 45 | 46 | public static void start(MainActivity mainActivity) { 47 | Intent intent=new Intent(mainActivity,LeftBackActivity.class); 48 | mainActivity.startActivity(intent); 49 | mainActivity.overridePendingTransition(R.anim.slide_in_left, 0); 50 | } 51 | 52 | 53 | 54 | private class MyAdapter extends FragmentPagerAdapter { 55 | 56 | public MyAdapter(FragmentManager fm) { 57 | super(fm); 58 | } 59 | 60 | @Override 61 | public Fragment getItem(int position) { 62 | 63 | return MyFragment.newInstance(mDatas.get(position)); 64 | } 65 | 66 | @Override 67 | public int getCount() { 68 | return mDatas.size(); 69 | } 70 | 71 | @Override 72 | public CharSequence getPageTitle(int position) { 73 | return mDatas.get(position); 74 | } 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/MainActivity.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.app.ActivityOptions; 4 | import android.content.Intent; 5 | import android.support.v4.app.ActivityCompat; 6 | import android.support.v7.app.AppCompatActivity; 7 | import android.os.Bundle; 8 | import android.view.View; 9 | 10 | public class MainActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.activity_main); 16 | } 17 | 18 | public void onClick(View view) { 19 | switch (view.getId()){ 20 | case R.id.bt1: 21 | LeftBackActivity.start(this); 22 | break; 23 | case R.id.bt2: 24 | Intent intent = new Intent(this,TopBackActivity.class); 25 | Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(this).toBundle(); 26 | ActivityCompat.startActivity(this,intent,bundle); 27 | break; 28 | case R.id.bt3: 29 | intent=new Intent(this,SlidrActivity.class); 30 | startActivity(intent); 31 | break; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/MyFragment.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.animation.ArgbEvaluator; 4 | import android.content.Context; 5 | import android.graphics.Color; 6 | import android.os.Bundle; 7 | import android.support.annotation.Nullable; 8 | import android.support.v4.app.Fragment; 9 | import android.view.LayoutInflater; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | import android.widget.TextView; 13 | 14 | import java.util.Random; 15 | 16 | /** 17 | * Created by Shuai.Li13 on 2017/8/9. 18 | */ 19 | 20 | public class MyFragment extends Fragment{ 21 | 22 | private static final String TAB_KEY = "TAB_KEY"; 23 | private Bundle getBundle; 24 | private Context mContext; 25 | 26 | public static MyFragment newInstance(String type){ 27 | 28 | MyFragment fragment=new MyFragment(); 29 | Bundle bundle=new Bundle(); 30 | bundle.putCharSequence(TAB_KEY,type); 31 | fragment.setArguments(bundle); 32 | return fragment; 33 | } 34 | 35 | @Override 36 | public void onCreate(@Nullable Bundle savedInstanceState) { 37 | super.onCreate(savedInstanceState); 38 | Bundle arguments = getArguments(); 39 | if (arguments!=null){ 40 | this.getBundle=arguments; 41 | } 42 | mContext=getActivity(); 43 | } 44 | 45 | @Nullable 46 | @Override 47 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 48 | View view = LayoutInflater.from(mContext).inflate(R.layout.fragment, container, false); 49 | TextView tv= (TextView) view.findViewById(R.id.tv); 50 | ArgbEvaluator evaluator = new ArgbEvaluator(); 51 | Random random = new Random(); 52 | float v = random.nextFloat(); 53 | int evaluate = (int) evaluator.evaluate(v, Color.parseColor("#FF3366"), Color.GREEN); 54 | tv.setBackgroundColor(evaluate); 55 | tv.setText(getBundle.getCharSequence(TAB_KEY)); 56 | tv.setTextColor(getResources().getColor(R.color.white)); 57 | return view; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/MyViewpager.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.content.Context; 4 | import android.support.v4.view.ViewPager; 5 | import android.util.AttributeSet; 6 | import android.view.View; 7 | 8 | /** 9 | * Created by Shuai.Li13 on 2017/8/10. 10 | */ 11 | 12 | public class MyViewpager extends ViewPager { 13 | public MyViewpager(Context context) { 14 | super(context); 15 | } 16 | 17 | public MyViewpager(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | } 20 | 21 | @Override 22 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 23 | 24 | 25 | // int height = 0; 26 | // for (int i = 0; i < getChildCount(); i++) { 27 | // View child = getChildAt(i); 28 | // child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 29 | // int h = child.getMeasuredHeight(); 30 | // if (h > height) height = h; 31 | // } 32 | // heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); 33 | int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 1, 34 | MeasureSpec.AT_MOST); 35 | super.onMeasure(widthMeasureSpec, expandSpec); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/SlidrActivity.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.animation.ArgbEvaluator; 4 | import android.os.Bundle; 5 | import android.support.annotation.IntegerRes; 6 | import android.support.annotation.LayoutRes; 7 | import android.support.annotation.Nullable; 8 | import android.support.v4.view.PagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | import android.widget.ImageView; 13 | import android.widget.LinearLayout; 14 | 15 | import com.r0adkll.slidr.Slidr; 16 | import com.r0adkll.slidr.model.SlidrConfig; 17 | import com.r0adkll.slidr.model.SlidrPosition; 18 | 19 | import java.util.ArrayList; 20 | import java.util.List; 21 | 22 | /** 23 | * Created by Shuai.Li13 on 2017/8/11. 24 | */ 25 | 26 | public class SlidrActivity extends BaseActivity{ 27 | 28 | List mList = new ArrayList<>(); 29 | @Override 30 | protected void onCreate(@Nullable Bundle savedInstanceState) { 31 | super.onCreate(savedInstanceState); 32 | setContentView(R.layout.slidr_activity); 33 | 34 | initSlidr(); 35 | initList(); 36 | initView(); 37 | } 38 | 39 | private void initList() { 40 | for (int i = 0; i < mDatas.size(); i++) { 41 | ImageView imageView = new ImageView(SlidrActivity.this); 42 | ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 43 | imageView.setLayoutParams(layoutParams); 44 | imageView.setImageDrawable(getDrawable(R.drawable.andy)); 45 | mList.add(imageView); 46 | } 47 | } 48 | 49 | private void initView() { 50 | ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 51 | final LinearLayout ll= (LinearLayout) findViewById(R.id.ll); 52 | viewPager.setAdapter(new PagerAdapter() { 53 | @Override 54 | public int getCount() { 55 | return Integer.MAX_VALUE/2; 56 | } 57 | 58 | @Override 59 | public boolean isViewFromObject(View view, Object object) { 60 | return view==object; 61 | } 62 | 63 | @Override 64 | public Object instantiateItem(ViewGroup container, int position) { 65 | 66 | container.addView(mList.get(position%mList.size())); 67 | return mList.get(position%mList.size()); 68 | } 69 | 70 | @Override 71 | public void destroyItem(ViewGroup container, int position, Object object) { 72 | container.removeView(mList.get(position%mDatas.size())); 73 | } 74 | }); 75 | 76 | viewPager.setCurrentItem(Integer.MAX_VALUE/2-(Integer.MAX_VALUE/2)%mDatas.size()); 77 | 78 | viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 79 | @Override 80 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 81 | 82 | ArgbEvaluator evaluator = new ArgbEvaluator(); 83 | int evaluate = (int) evaluator.evaluate(positionOffset, getResources().getColor(R.color.green), getResources().getColor(R.color.yellow)); 84 | ll.setBackgroundColor(evaluate); 85 | } 86 | 87 | @Override 88 | public void onPageSelected(int position) { 89 | 90 | } 91 | 92 | @Override 93 | public void onPageScrollStateChanged(int state) { 94 | 95 | } 96 | }); 97 | } 98 | 99 | private void initSlidr() { 100 | 101 | SlidrConfig config = new SlidrConfig.Builder() 102 | .position(SlidrPosition.VERTICAL) 103 | .secondaryColor(getColor(R.color.yellow)) 104 | .scrimColor(getColor(R.color.green)) 105 | .scrimColor(getColor(R.color.colorAccent)) 106 | .build(); 107 | Slidr.attach(this,config); 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /sdlirtext/src/main/java/cn/evun/sdlirtext/TopBackActivity.java: -------------------------------------------------------------------------------- 1 | package cn.evun.sdlirtext; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.LayoutRes; 6 | import android.support.annotation.Nullable; 7 | import android.support.design.widget.CollapsingToolbarLayout; 8 | import android.support.v7.app.AppCompatActivity; 9 | import android.support.v7.widget.LinearLayoutManager; 10 | import android.support.v7.widget.RecyclerView; 11 | import android.support.v7.widget.Toolbar; 12 | import android.transition.Slide; 13 | import android.view.Gravity; 14 | import android.view.LayoutInflater; 15 | import android.view.View; 16 | import android.view.ViewGroup; 17 | import android.widget.TextView; 18 | 19 | import com.r0adkll.slidr.Slidr; 20 | import com.r0adkll.slidr.model.SlidrConfig; 21 | import com.r0adkll.slidr.model.SlidrPosition; 22 | 23 | /** 24 | * Created by Shuai.Li13 on 2017/8/10. 25 | */ 26 | 27 | public class TopBackActivity extends BaseActivity{ 28 | 29 | 30 | @Override 31 | protected void onCreate(@Nullable Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | setContentView(R.layout.top_back_activity); 34 | 35 | getWindow().setEnterTransition(new Slide().setDuration(500)); 36 | getWindow().setExitTransition(new Slide().setDuration(500)); 37 | initView(); 38 | initSlidr(); 39 | } 40 | 41 | private void initSlidr() { 42 | SlidrConfig config=new SlidrConfig.Builder() 43 | .position(SlidrPosition.TOP)//滑动起始方向 44 | .edge(true) 45 | .edgeSize(0.3f)//边界占屏幕大小30% 46 | .build(); 47 | Slidr.attach(this,config); 48 | } 49 | 50 | private void initView() { 51 | 52 | Toolbar toolbar= (Toolbar) findViewById(R.id.toolbar); 53 | CollapsingToolbarLayout ctl= (CollapsingToolbarLayout) findViewById(R.id.ctl); 54 | RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 55 | toolbar.setTitleTextColor(getColor(R.color.white)); 56 | ctl.setCollapsedTitleGravity(Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK); 57 | ctl.setExpandedTitleColor(Color.parseColor("#00ffffff")); 58 | ctl.setCollapsedTitleTextColor(getColor(R.color.white)); 59 | setSupportActionBar(toolbar); 60 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 61 | 62 | LinearLayoutManager manager = new LinearLayoutManager(this); 63 | manager.setOrientation(LinearLayoutManager.VERTICAL); 64 | recyclerView.setLayoutManager(manager); 65 | recyclerView.setHasFixedSize(true); 66 | MyAdapter adapter = new MyAdapter(); 67 | recyclerView.setAdapter(adapter); 68 | } 69 | 70 | private class MyAdapter extends RecyclerView.Adapter{ 71 | @Override 72 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 73 | 74 | View inflate = LayoutInflater.from(TopBackActivity.this).inflate(R.layout.item, parent, false); 75 | return new MyHolder(inflate); 76 | } 77 | 78 | @Override 79 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 80 | 81 | ((MyHolder) holder).tv.setText(mDatas.get(position)); 82 | } 83 | 84 | @Override 85 | public int getItemCount() { 86 | return mDatas.size(); 87 | } 88 | } 89 | class MyHolder extends RecyclerView.ViewHolder { 90 | 91 | private final TextView tv; 92 | 93 | public MyHolder(View itemView) { 94 | super(itemView); 95 | tv = (TextView) itemView.findViewById(R.id.tv); 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_in_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_in_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_out_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/anim/slide_out_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/drawable-xxhdpi/andy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AndyAls/SlidrDemo/28ac9b794357be912158119d4c21f0384774cc04/sdlirtext/src/main/res/drawable-xxhdpi/andy.jpg -------------------------------------------------------------------------------- /sdlirtext/src/main/res/layout/activity_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 20 | 21 | 22 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /sdlirtext/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 |