diff --git a/broccoli/src/main/java/me/samlss/broccoli/util/DisplayUtil.java b/broccoli/src/main/java/me/samlss/broccoli/util/DisplayUtil.java
new file mode 100644
index 0000000..d9a7ef2
--- /dev/null
+++ b/broccoli/src/main/java/me/samlss/broccoli/util/DisplayUtil.java
@@ -0,0 +1,277 @@
+package me.samlss.broccoli.util;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.util.Log;
+import android.view.Display;
+import android.view.View;
+import android.view.ViewGroup.LayoutParams;
+import android.view.WindowManager;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+
+import java.lang.reflect.Field;
+
+/**
+ *
+ * 功能说明:页面布局控件常用的一些工具类
+ * 日期: 2015-12-22
+ * 作者: all developer
+ */
+@SuppressLint("NewApi")
+public class DisplayUtil {
+
+ /**
+ * 设置ListView 的Item高度
+ *
+ * @param activity
+ * @param listView
+ * @param height
+ */
+ public static void setListViewItemHeight(Activity activity,
+ ListView listView, int height) {
+ ListAdapter listAdapter = listView.getAdapter();
+ if (listAdapter == null) {
+ return;
+ }
+ int itemNum = listAdapter.getCount();
+
+ for (int j = 0; j < itemNum; j++) {
+ View listItem = listAdapter.getView(j, null, listView);
+ LayoutParams params = listItem.getLayoutParams();
+ params.height = height;
+ listItem.setLayoutParams(params);
+ }
+ }
+
+ /**
+ * 得到屏幕的高度(通知栏除外)
+ *
+ * @param activity
+ * @return
+ */
+ public static int getContentViewHeight(Activity activity) {
+ int screenHeight = DisplayUtil.getScreenHeight(activity);
+ return screenHeight - getStatusBarHeight(activity);
+ }
+
+ /**
+ *
+ * 功能说明:获取传入的view的高度
+ * 日期: 2015-12-22
+ * 作者:advance
+ * @param view
+ * @return
+ */
+ public static int getViewHeight(View view) {
+
+ int w = View.MeasureSpec.makeMeasureSpec(0,
+ View.MeasureSpec.UNSPECIFIED);
+ int h = View.MeasureSpec.makeMeasureSpec(0,
+ View.MeasureSpec.UNSPECIFIED);
+ view.measure(w, h);
+ return view.getMeasuredHeight();
+ }
+
+ /**
+ *
+ * 功能说明:获取传入的view的宽度
+ * 日期: 2015-12-22
+ * 作者:advance
+ * @param view
+ * @return
+ */
+ public static int getViewWidth(View view) {
+ int w = View.MeasureSpec.makeMeasureSpec(0,
+ View.MeasureSpec.UNSPECIFIED);
+ int h = View.MeasureSpec.makeMeasureSpec(0,
+ View.MeasureSpec.UNSPECIFIED);
+ view.measure(w, h);
+ return view.getMeasuredWidth();
+ }
+
+ /**
+ * 得到通知栏的高度
+ *
+ * @param context
+ * @return
+ */
+ public static int getStatusBarHeight(Context context) {
+ Class> c = null;
+ Object obj = null;
+ Field field = null;
+ int x = 0, statusBarHeight = 0;
+ try {
+ c = Class.forName("com.android.internal.R$dimen");
+ obj = c.newInstance();
+ field = c.getField("status_bar_height");
+ x = Integer.parseInt(field.get(obj).toString());
+ statusBarHeight = context.getResources().getDimensionPixelSize(x);
+ } catch (Exception e1) {
+ Log.e("Exception", Log.getStackTraceString(e1));
+ }
+ return statusBarHeight;
+ }
+
+ /**
+ * 得到屏幕高度
+ *
+ * @param activity
+ * @return
+ */
+ public static int getScreenHeight(Activity activity) {
+
+ return activity.getWindowManager().getDefaultDisplay().getHeight();
+ }
+
+ /**
+ * 得到屏幕宽度
+ *
+ * @param activity
+ * @return
+ */
+ public static int getScreenWight(Activity activity) {
+
+ return activity.getWindowManager().getDefaultDisplay().getWidth();
+ }
+
+ /**
+ *
+ * @param activity
+ * @param view
+ * 要设置的控件
+ * @param heightRatio
+ * 控件占屏幕高的比率
+ * @param widthRatio
+ * 控件占屏幕宽的比率
+ */
+ public static void setViewHWLocation(Activity activity, View view,
+ float heightRatio, float widthRatio, float heightLocation,
+ float widthLocation) {
+
+ int screenWidth = activity.getWindowManager().getDefaultDisplay()
+ .getWidth();
+ int screenHeight = activity.getWindowManager().getDefaultDisplay()
+ .getHeight();
+ LayoutParams lParams = view.getLayoutParams();
+ LayoutParams layoutParams = view.getLayoutParams();
+ layoutParams.width = (int) (screenWidth * widthRatio);
+ layoutParams.height = (int) (screenHeight * heightRatio);
+ view.setLayoutParams(lParams);
+ view.setX((float)(screenWidth * widthLocation - layoutParams.width / 2f));
+ view.setY((float)(screenHeight * heightLocation - layoutParams.height / 2f));
+ }
+
+ /**
+ *
+ * 功能说明:以一定的比例设置传入的view的高度
+ * 日期: 2015-12-22
+ * 作者:advance
+ * @param activity
+ * @param view
+ * @param heightRatio 比例
+ */
+ public static void setViewHeight(Activity activity, View view,
+ float heightRatio) {
+
+ int screenHeight = activity.getWindowManager().getDefaultDisplay()
+ .getHeight();
+ LayoutParams lParams = view.getLayoutParams();
+ LayoutParams layoutParams = view.getLayoutParams();
+ layoutParams.height = (int) (screenHeight * heightRatio);
+ view.setLayoutParams(lParams);
+ }
+
+ /**
+ * 注意:设置dialog控件宽高一定要放在dialog.show()之后! 设置dialog显示的大小
+ *
+ * @param activity
+ * @param dialog
+ * 要设置对话框
+ * @param heightRatio
+ 占屏幕高的比例
+ * @param widthRatio
+ 占屏幕宽的比例
+ */
+ public static void setDialogHW(Activity activity, Dialog dialog,
+ float heightRatio, float widthRatio) {
+ WindowManager m = activity.getWindowManager();
+ Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
+ WindowManager.LayoutParams p = dialog.getWindow().getAttributes(); // 获取对话框当前的参数值
+ p.height = (int) (d.getHeight() * heightRatio);
+ p.width = (int) (d.getWidth() * widthRatio);
+ dialog.onWindowAttributesChanged(p);
+ dialog.getWindow().setAttributes(p);
+ }
+
+ /**
+ * 设置dialog的位置
+ *
+ * @param activity
+ * @param dialog
+ * @param heightLocation
+ * 相对原来位置的偏移量
+ * @param widthLocation
+ * 相对原来位置的偏移量
+ */
+ public static void setDialogLocation(Activity activity, Dialog dialog,
+ float heightLocation, float widthLocation) {
+ WindowManager m = activity.getWindowManager();
+ Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
+ WindowManager.LayoutParams p = dialog.getWindow().getAttributes(); // 获取对话框当前的参数值
+ p.x = (int) (d.getWidth() * widthLocation);
+ p.y = (int) (d.getHeight() * heightLocation);
+ dialog.getWindow().setAttributes(p);
+ }
+
+ /**
+ * 设置dialog的位置
+ *
+ * @param activity
+ * @param dialog
+ * @param heightLocation
+ * 相对原来位置的偏移量
+ * @param widthLocation
+ * 相对原来位置的偏移量
+ */
+ public static void context(Activity activity, Dialog dialog,
+ float heightLocation, float widthLocation) {
+ WindowManager m = activity.getWindowManager();
+ Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
+ WindowManager.LayoutParams p = dialog.getWindow().getAttributes(); // 获取对话框当前的参数值
+ p.x = (int) (d.getWidth() * widthLocation);
+ p.y = (int) (d.getHeight() * heightLocation);
+ dialog.getWindow().setAttributes(p);
+
+ }
+
+ /**
+ * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
+ */
+ public static int dip2px(Context context, float dpValue) {
+ float density = context.getResources().getDisplayMetrics().density;
+ return (int) (dpValue * density + 0.5f);
+ }
+
+ /**
+ * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
+ */
+ public static int px2dip(Context context, float pxValue) {
+ float density = context.getResources().getDisplayMetrics().density;
+ return (int) (pxValue / density + 0.5f);
+ }
+
+ /**
+ *
+ * 功能说明:获取设备的密度
+ * 日期: 2015-12-22
+ * 作者:advance
+ * @param context
+ * @return
+ */
+ public static float getDensity(Context context) {
+ return context.getResources().getDisplayMetrics().density;
+ }
+}
diff --git a/broccoli/src/main/res/values/colors.xml b/broccoli/src/main/res/values/colors.xml
new file mode 100644
index 0000000..8f5065f
--- /dev/null
+++ b/broccoli/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #f6f6f6
+ #99ffffff
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index a87d7c0..c8213e9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,12 +3,40 @@
buildscript {
repositories {
+ maven { url 'https://developer.huawei.com/repo/'
+ }
+
google()
jcenter()
+ maven { url "https://maven.aliyun.com/repository/public" }
+ maven { url 'https://storage.flutter-io.cn/download.flutter.io' }
+ maven {
+ url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
+ }
+
+ maven {
+ url "https://artifact.bytedance.com/repository/byteX/"
+ }
+
+ maven {
+ url 'https://mvnrepository.com/artifact/org.eweb4j/fel'
+ }
+
+ maven {
+ url "https://mvn.mob.com/android"
+ }
+
+ maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+ maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
+ maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
+ maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
+ mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.2.1'
+ classpath 'com.android.tools.build:gradle:3.5.4'
classpath 'com.novoda:bintray-release:0.8.1'
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30"
+
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -16,9 +44,21 @@ buildscript {
allprojects {
repositories {
- maven{url "https://jitpack.io"}
+ maven { url "http://mvn.mob.com/android" }
+ maven { url "https://jitpack.io" }
+ maven { url 'https://developer.huawei.com/repo/' }
google()
jcenter()
+ maven {
+ url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
+ }
+ maven {
+ url "https://mvn.mob.com/android"
+ }
+ maven {
+ url "https://mvn.getui.com/nexus/content/repositories/releases/"
+ }
+ maven { url "https://maven.aliyun.com/repository/public" }
}
tasks.withType(Javadoc) {
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index f6b961f..1948b90 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 9a4163a..ebc7d52 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Mon Mar 20 16:52:26 CST 2023
distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755
diff --git a/sample/build.gradle b/sample/build.gradle
index 0c26237..f5b697f 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -4,7 +4,7 @@ android {
compileSdkVersion 28
defaultConfig {
applicationId "me.samlss.broccoli_demo"
- minSdkVersion 14
+ minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
@@ -26,15 +26,16 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'com.android.support:appcompat-v7:28.0.0'
- implementation 'com.android.support:recyclerview-v7:28.0.0'
- implementation 'com.android.support:cardview-v7:28.0.0'
- implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+ implementation 'androidx.appcompat:appcompat:1.2.0'
+ implementation 'androidx.cardview:cardview:1.0.0'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ androidTestImplementation 'androidx.test:runner:1.1.0'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation project(':broccoli')
- debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.2'
- releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.2'
+// debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.2'
+// releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.2'
+ implementation 'com.squareup.leakcanary:leakcanary-android:2.6'
implementation 'de.hdodenhof:circleimageview:2.2.0'
+ implementation('androidx.recyclerview:recyclerview:1.1.0')
}
diff --git a/sample/src/main/java/me/samlss/broccoli_demo/App.java b/sample/src/main/java/me/samlss/broccoli_demo/App.java
index 395ec60..52b2429 100644
--- a/sample/src/main/java/me/samlss/broccoli_demo/App.java
+++ b/sample/src/main/java/me/samlss/broccoli_demo/App.java
@@ -2,8 +2,8 @@
import android.app.Application;
-import com.squareup.leakcanary.LeakCanary;
-import com.squareup.leakcanary.RefWatcher;
+//import com.squareup.leakcanary.LeakCanary;
+//import com.squareup.leakcanary.RefWatcher;
/**
* @author SamLeung
@@ -12,20 +12,20 @@
* @description
*/
public class App extends Application {
- public static RefWatcher sRefWatcher;
+// public static RefWatcher sRefWatcher;
@Override public void onCreate() {
super.onCreate();
- if (LeakCanary.isInAnalyzerProcess(this)) {
- // This process is dedicated to LeakCanary for heap analysis.
- // You should not init your app in this process.
- return;
- }
- sRefWatcher = LeakCanary.install(this);
+// if (LeakCanary.isInAnalyzerProcess(this)) {
+// // This process is dedicated to LeakCanary for heap analysis.
+// // You should not init your app in this process.
+// return;
+// }
+// sRefWatcher = LeakCanary.install(this);
// Normal app init code...
}
- public static RefWatcher getRefWatcher(){
- return sRefWatcher;
- }
+// public static RefWatcher getRefWatcher(){
+// return sRefWatcher;
+// }
}
diff --git a/sample/src/main/java/me/samlss/broccoli_demo/DingDingSampleActivity.java b/sample/src/main/java/me/samlss/broccoli_demo/DingDingSampleActivity.java
index 451eb0d..e609f3f 100644
--- a/sample/src/main/java/me/samlss/broccoli_demo/DingDingSampleActivity.java
+++ b/sample/src/main/java/me/samlss/broccoli_demo/DingDingSampleActivity.java
@@ -3,9 +3,9 @@
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import me.samlss.broccoli.Broccoli;
import me.samlss.broccoli.PlaceholderParameter;
diff --git a/sample/src/main/java/me/samlss/broccoli_demo/LayoutAdvancedSampleActivity.java b/sample/src/main/java/me/samlss/broccoli_demo/LayoutAdvancedSampleActivity.java
index d5ce7af..4d4c9b6 100644
--- a/sample/src/main/java/me/samlss/broccoli_demo/LayoutAdvancedSampleActivity.java
+++ b/sample/src/main/java/me/samlss/broccoli_demo/LayoutAdvancedSampleActivity.java
@@ -4,8 +4,9 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.BounceInterpolator;
@@ -58,25 +59,25 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
}
private void initViews(){
- tvViewTimes = findViewById(R.id.tv_view_time);
- tvCollectTimes = findViewById(R.id.tv_collect_time);
- tvPrice = findViewById(R.id.tv_price);
- ivClock = findViewById(R.id.iv_clock);
- tvTime = findViewById(R.id.tv_time);
- ivCalendar = findViewById(R.id.iv_calendar);
- ivLocation = findViewById(R.id.iv_location);
- tvLocation = findViewById(R.id.tv_location);
- ivRightArrow = findViewById(R.id.iv_arrow_right);
+ tvViewTimes = (TextView) findViewById(R.id.tv_view_time);
+ tvCollectTimes = (TextView) findViewById(R.id.tv_collect_time);
+ tvPrice = (TextView) findViewById(R.id.tv_price);
+ ivClock = (ImageView) findViewById(R.id.iv_clock);
+ tvTime = (TextView) findViewById(R.id.tv_time);
+ ivCalendar = (ImageView) findViewById(R.id.iv_calendar);
+ ivLocation = (ImageView) findViewById(R.id.iv_location);
+ tvLocation = (TextView) findViewById(R.id.tv_location);
+ ivRightArrow = (ImageView) findViewById(R.id.iv_arrow_right);
vLine = findViewById(R.id.view_line);
- ivLogo = findViewById(R.id.iv_logo);
- tvOrganizer = findViewById(R.id.tv_organizer_name);
- tvOrganizerDescription = findViewById(R.id.tv_organizer_description);
- tvFans = findViewById(R.id.tv_fans);
- tvFansNumber = findViewById(R.id.tv_fans_number);
- tvEvents = findViewById(R.id.tv_events);
- tvEventsNumber = findViewById(R.id.tv_events_number);
- tvFollow = findViewById(R.id.tv_follow);
- tvStation = findViewById(R.id.tv_station);
+ ivLogo = (ImageView) findViewById(R.id.iv_logo);
+ tvOrganizer = (TextView) findViewById(R.id.tv_organizer_name);
+ tvOrganizerDescription = (TextView) findViewById(R.id.tv_organizer_description);
+ tvFans = (TextView) findViewById(R.id.tv_fans);
+ tvFansNumber = (TextView) findViewById(R.id.tv_fans_number);
+ tvEvents = (TextView) findViewById(R.id.tv_events);
+ tvEventsNumber = (TextView) findViewById(R.id.tv_events_number);
+ tvFollow = (TextView) findViewById(R.id.tv_follow);
+ tvStation = (TextView) findViewById(R.id.tv_station);
findViewById(R.id.iv_retry).setOnTouchListener(new View.OnTouchListener() {
@Override
diff --git a/sample/src/main/java/me/samlss/broccoli_demo/LayoutSimpleSampleActivity.java b/sample/src/main/java/me/samlss/broccoli_demo/LayoutSimpleSampleActivity.java
index 0f80717..2d57c9e 100644
--- a/sample/src/main/java/me/samlss/broccoli_demo/LayoutSimpleSampleActivity.java
+++ b/sample/src/main/java/me/samlss/broccoli_demo/LayoutSimpleSampleActivity.java
@@ -4,12 +4,12 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.BounceInterpolator;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import me.samlss.broccoli.Broccoli;
diff --git a/sample/src/main/java/me/samlss/broccoli_demo/MainActivity.java b/sample/src/main/java/me/samlss/broccoli_demo/MainActivity.java
index f66ca9e..b24f77d 100644
--- a/sample/src/main/java/me/samlss/broccoli_demo/MainActivity.java
+++ b/sample/src/main/java/me/samlss/broccoli_demo/MainActivity.java
@@ -2,27 +2,29 @@
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
public class MainActivity extends AppCompatActivity {
@Override
- protected void onCreate(Bundle savedInstanceState) {
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
- public void startLayoutSample(View view) {
+ public void startLayoutSample(View view) { // 静态
startActivity(new Intent(this, LayoutSimpleSampleActivity.class));
}
- public void startRecyclerViewSample(View view) {
- startActivity(new Intent(this, RecyclerViewSampleActivity.class));
+ public void startAdvancedLayoutSample(View view) { // 动画
+ startActivity(new Intent(this, LayoutAdvancedSampleActivity.class));
}
- public void startAdvancedLayoutSample(View view) {
- startActivity(new Intent(this, LayoutAdvancedSampleActivity.class));
+ public void startRecyclerViewSample(View view) { // 列表
+ startActivity(new Intent(this, RecyclerViewSampleActivity.class));
}
public void startDingDingSample(View view) {
diff --git a/sample/src/main/java/me/samlss/broccoli_demo/RecyclerViewSampleActivity.java b/sample/src/main/java/me/samlss/broccoli_demo/RecyclerViewSampleActivity.java
index 6d28b2b..830bc69 100644
--- a/sample/src/main/java/me/samlss/broccoli_demo/RecyclerViewSampleActivity.java
+++ b/sample/src/main/java/me/samlss/broccoli_demo/RecyclerViewSampleActivity.java
@@ -2,14 +2,8 @@
import android.graphics.Color;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
-import android.view.animation.BounceInterpolator;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
@@ -23,6 +17,13 @@
import me.samlss.broccoli.PlaceholderParameter;
import me.samlss.broccoli.BroccoliGradientDrawable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+
/**
* @author SamLeung
* @e-mail samlssplus@gmail.com
@@ -104,7 +105,7 @@ private void initData(){
}
private void initRecyclerView(){
- mRecyclerView = findViewById(R.id.recyclerview);
+ mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
myAdapter = new MyAdapter();
@@ -122,8 +123,9 @@ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
}
@Override
- public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, final int i) {
+ public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, int position) {
Broccoli broccoli = mViewPlaceholderManager.get(myViewHolder.itemView);
+ final int itemPos = position;
if (broccoli == null){
broccoli = new Broccoli();
mViewPlaceholderManager.put(myViewHolder.itemView, broccoli);
@@ -133,22 +135,22 @@ public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, final int
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(myViewHolder.tvTitle)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
- Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
+ Color.parseColor("#FF0000"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(myViewHolder.imageView)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
- Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
+ Color.parseColor("#FF0000"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(myViewHolder.tvPrice)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
- Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
+ Color.parseColor("#FF0000"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(myViewHolder.tvDescription)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
- Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
+ Color.parseColor("#FF0000"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.show();
@@ -167,10 +169,10 @@ public void run() {
return;
}
- myViewHolder.imageView.setImageResource(mDataList.get(i).imageRes);
- myViewHolder.tvPrice.setText("¥ "+String.valueOf(mDataList.get(i).price));
- myViewHolder.tvTitle.setText(mDataList.get(i).title);
- myViewHolder.tvDescription.setText(mDataList.get(i).description);
+ myViewHolder.imageView.setImageResource(mDataList.get(itemPos).imageRes);
+ myViewHolder.tvPrice.setText("¥ "+String.valueOf(mDataList.get(itemPos).price));
+ myViewHolder.tvTitle.setText(mDataList.get(itemPos).title);
+ myViewHolder.tvDescription.setText(mDataList.get(itemPos).description);
}
};
mTaskManager.put(myViewHolder.itemView, task);
diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml
index f8b46e1..31b9a4c 100644
--- a/sample/src/main/res/layout/activity_main.xml
+++ b/sample/src/main/res/layout/activity_main.xml
@@ -7,51 +7,47 @@
tools:context=".MainActivity">
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:orientation="vertical">
+ android:text="静态" />
+ android:text="动画" />
+ android:text="列表" />
+ android:text="DingDing Sample" />
+ android:textColor="@android:color/black"
+ android:textSize="16sp" />
\ No newline at end of file
diff --git a/sample/src/main/res/layout/activity_recyclerview_sample.xml b/sample/src/main/res/layout/activity_recyclerview_sample.xml
index 0338ee8..1587d35 100644
--- a/sample/src/main/res/layout/activity_recyclerview_sample.xml
+++ b/sample/src/main/res/layout/activity_recyclerview_sample.xml
@@ -3,10 +3,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
+
\ No newline at end of file
diff --git a/sample/src/main/res/layout/recyclerview_sample_item.xml b/sample/src/main/res/layout/recyclerview_sample_item.xml
index 6cd38ea..aeb8588 100644
--- a/sample/src/main/res/layout/recyclerview_sample_item.xml
+++ b/sample/src/main/res/layout/recyclerview_sample_item.xml
@@ -1,5 +1,5 @@
-
-
\ No newline at end of file
+
\ No newline at end of file