diff --git a/README.md b/README.md
index 2e48308..b8a9f74 100644
--- a/README.md
+++ b/README.md
@@ -8,9 +8,9 @@ Note:图1为设置属性wkp_canScrollToEndViewTop=true,图2没有;图3为
## Gradle集成
```groovy
dependencies{
- compile 'com.wkp:StickLayout:1.0.6'
+ compile 'com.wkp:StickLayout:1.0.7'
//Android Studio3.0+可用以下方式
- //implementation 'com.wkp:StickLayout:1.0.6'
+ //implementation 'com.wkp:StickLayout:1.0.7'
}
//如不愿意等待,请加上我的maven仓库地址
@@ -229,6 +229,8 @@ QQ邮箱:1535514884@qq.com
Gmail邮箱:wkp15889686524@gmail.com
## 版本更新
+* v1.0.7
+修复crash:当所有子控件均未设置wkp_stick属性时,使用pair导致空指针。
* v1.0.6
修复悬停控件高度设置wrap_content时无高度BUG。
* v1.0.5
diff --git a/app/src/main/java/com/wkp/sticklayout/MainActivity.java b/app/src/main/java/com/wkp/sticklayout/MainActivity.java
index f219084..b6512c2 100644
--- a/app/src/main/java/com/wkp/sticklayout/MainActivity.java
+++ b/app/src/main/java/com/wkp/sticklayout/MainActivity.java
@@ -5,7 +5,6 @@
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.TextView;
-import android.widget.Toast;
import com.wkp.sticklayout_lib.widget.StickLayout;
@@ -51,7 +50,7 @@ protected void onCreate(Bundle savedInstanceState) {
public void onScrollChange(StickLayout v, View currentView, int position, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
//直到当前控件改变在做事情
if (currentPosition != position && position <= 7) {
- Toast.makeText(v.getContext(), ((TextView) currentView).getText().toString(), Toast.LENGTH_SHORT).show();
+// Toast.makeText(v.getContext(), ((TextView) currentView).getText().toString(), Toast.LENGTH_SHORT).show();
currentPosition = position;
}
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 7219c9c..7032802 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -29,8 +29,8 @@
android:layout_width="match_parent"
android:layout_height="200dp"/>
+
diff --git a/gradle.properties b/gradle.properties
index aac7c9b..fd06783 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,3 +15,4 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+android.enableAapt2=false
\ No newline at end of file
diff --git a/sticklayout-lib/build.gradle b/sticklayout-lib/build.gradle
index 3d0cd35..ad4c934 100644
--- a/sticklayout-lib/build.gradle
+++ b/sticklayout-lib/build.gradle
@@ -11,8 +11,8 @@ android {
// applicationId "com.wkp.sticklayout_lib"
minSdkVersion 15
targetSdkVersion 26
- versionCode 6
- versionName "1.0.6"
+ versionCode 7
+ versionName "1.0.7"
}
@@ -34,7 +34,7 @@ publish {
userOrg = 'wkp'
groupId = 'com.wkp'
artifactId = 'StickLayout'
- publishVersion = '1.0.6'
+ publishVersion = '1.0.7'
desc = 'a library to create a stickable layout'
website = 'https://github.com/wkp111/StickLayout'
}
diff --git a/sticklayout-lib/src/main/java/com/wkp/sticklayout_lib/widget/StickLayout.java b/sticklayout-lib/src/main/java/com/wkp/sticklayout_lib/widget/StickLayout.java
index 4c95c4c..3f760c2 100644
--- a/sticklayout-lib/src/main/java/com/wkp/sticklayout_lib/widget/StickLayout.java
+++ b/sticklayout-lib/src/main/java/com/wkp/sticklayout_lib/widget/StickLayout.java
@@ -720,13 +720,16 @@ protected void onScrollChanged(int l, int t, int oldl, int oldt) {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- //确定替代控件的大小
- View replaceView = mViewPair.first;
- View originalView = mViewPair.second;
- LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) replaceView.getLayoutParams();
- params.width = originalView.getMeasuredWidth();
- params.height = originalView.getMeasuredHeight();
- replaceView.setLayoutParams(params);
+ //当存在停留子控件时,需要设置替代控件的大小
+ if (mViewPair != null) {
+ //确定替代控件的大小
+ View replaceView = mViewPair.first;
+ View originalView = mViewPair.second;
+ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) replaceView.getLayoutParams();
+ params.width = originalView.getMeasuredWidth();
+ params.height = originalView.getMeasuredHeight();
+ replaceView.setLayoutParams(params);
+ }
if (!mFillViewport) {
return;