diff --git a/library/build.gradle b/library/build.gradle
index 3db15f63..3df591cb 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -4,7 +4,7 @@ android {
compileSdkVersion 28
defaultConfig {
- minSdkVersion 12
+ minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
diff --git a/sample/build.gradle b/sample/build.gradle
index ea765ad0..a8bef93b 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -5,7 +5,7 @@ android {
defaultConfig {
applicationId "uk.co.deanwild.materialshowcaseviewsample"
- minSdkVersion 14
+ minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
@@ -23,4 +23,5 @@ dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation project(':library')
+ implementation 'com.android.support.constraint:constraint-layout:1.1.3'
}
diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml
index eae3e4dd..b89e3373 100644
--- a/sample/src/main/AndroidManifest.xml
+++ b/sample/src/main/AndroidManifest.xml
@@ -1,15 +1,15 @@
+ package="uk.co.deanwild.materialshowcaseviewsample">
+ android:theme="@style/AppTheme">
+ android:label="@string/app_name">
@@ -18,22 +18,20 @@
-
+ android:label="@string/title_activity_simple_single_example">
-
+ android:label="@string/title_activity_custom_example">
-
-
+ android:label="@string/title_activity_sequence_example">
-
+ android:label="@string/title_activity_sequence_example"
+ android:theme="@style/ToolTipTheme">
+
-
+
\ No newline at end of file
diff --git a/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/MainActivity.java b/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/MainActivity.java
index f30499bd..fa9b4d5c 100644
--- a/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/MainActivity.java
+++ b/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/MainActivity.java
@@ -24,6 +24,8 @@ protected void onCreate(Bundle savedInstanceState) {
button.setOnClickListener(this);
button = findViewById(R.id.btn_tooltip_example);
button.setOnClickListener(this);
+ button = findViewById(R.id.btn_recyclerview_example);
+ button.setOnClickListener(this);
button = findViewById(R.id.btn_reset_all);
button.setOnClickListener(this);
@@ -51,6 +53,10 @@ public void onClick(View v) {
intent = new Intent(this, TooltipExample.class);
break;
+ case R.id.btn_recyclerview_example:
+ intent = new Intent(this, RecyclerViewExample.class);
+ break;
+
case R.id.btn_reset_all:
MaterialShowcaseView.resetAll(this);
Toast.makeText(this, "All Showcases reset", Toast.LENGTH_SHORT).show();
diff --git a/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/RecyclerViewAdapter.java b/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/RecyclerViewAdapter.java
new file mode 100644
index 00000000..6f6a2400
--- /dev/null
+++ b/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/RecyclerViewAdapter.java
@@ -0,0 +1,63 @@
+package uk.co.deanwild.materialshowcaseviewsample;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Resul Rıza DOLANER on 20.08.2020.
+ */
+
+public class RecyclerViewAdapter extends RecyclerView.Adapter {
+
+ private Context context;
+ private ArrayList arrayList;
+
+ public RecyclerViewAdapter(Context context, ArrayList arrayList) {
+ this.context = context;
+ this.arrayList = arrayList;
+ }
+
+ @NonNull
+ @Override
+ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+ View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_recyclerview, viewGroup, false);
+ return new MyViewHolder(view);
+ }
+
+ @NonNull
+ @Override
+ public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int position) {
+
+ myViewHolder.textView.setText(arrayList.get(position));
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return arrayList.size();
+ }
+
+ public class MyViewHolder extends RecyclerView.ViewHolder {
+
+ public TextView textView;
+ public RelativeLayout relativeLayout;
+ public ImageView imageView;
+
+ public MyViewHolder(View itemView) {
+ super(itemView);
+
+ textView = itemView.findViewById(R.id.text_view);
+ relativeLayout = itemView.findViewById(R.id.relative_layout);
+ imageView = itemView.findViewById(R.id.image_view);
+ }
+ }
+}
\ No newline at end of file
diff --git a/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/RecyclerViewExample.java b/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/RecyclerViewExample.java
new file mode 100644
index 00000000..9f66494a
--- /dev/null
+++ b/sample/src/main/java/uk/co/deanwild/materialshowcaseviewsample/RecyclerViewExample.java
@@ -0,0 +1,93 @@
+package uk.co.deanwild.materialshowcaseviewsample;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.view.ViewTreeObserver;
+
+import java.util.ArrayList;
+import java.util.Objects;
+
+import uk.co.deanwild.materialshowcaseview.MaterialShowcaseSequence;
+import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView;
+import uk.co.deanwild.materialshowcaseview.ShowcaseConfig;
+
+public class RecyclerViewExample extends AppCompatActivity {
+
+ RecyclerView recyclerView;
+ RecyclerView.LayoutManager layoutManager;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_recycler_view_example);
+
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add("How to show on recycler view?");
+ arrayList.add("How to show on recycler view?");
+ arrayList.add("How to show on recycler view?");
+
+ recyclerView = findViewById(R.id.recyclerview);
+ recyclerView.setHasFixedSize(true);
+
+ layoutManager = new LinearLayoutManager(this);
+ recyclerView.setLayoutManager(layoutManager);
+ recyclerView.setAdapter(new RecyclerViewAdapter(this, arrayList));
+
+ checkedFillAllData();
+
+ }
+
+ private void checkedFillAllData() {
+
+ // It is used to run all the data in the list after it is filled.
+ // Otherwise, it will not work because it cannot find the first line in direct use, and it will give an empty object error.
+ recyclerView.getViewTreeObserver()
+ .addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+
+ // I want to get the first line
+ RecyclerViewAdapter.MyViewHolder myViewHolder = (RecyclerViewAdapter.MyViewHolder) recyclerView.findViewHolderForAdapterPosition(0);
+
+ // I catch ImageView object of the first line
+ View targetImageView = myViewHolder.imageView;
+ // I catch RelativeLayout object of the first line
+ View targetRelativeLayout = myViewHolder.relativeLayout;
+
+ // We show the objects we obtain sequentially
+ createShowCaseView(targetImageView, targetRelativeLayout);
+
+ // If you don't do it, it will always create
+ // Minimum Sdk Version should be 16
+ recyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+ }
+ });
+ }
+
+ private void createShowCaseView(View imageView, View relativeLayout) {
+ ShowcaseConfig config = new ShowcaseConfig();
+ MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(this);
+ sequence.setConfig(config);
+
+ sequence.addSequenceItem(new MaterialShowcaseView.Builder(this)
+ .setTarget(relativeLayout)
+ .withRectangleShape()
+ .setContentText("This shows the whole line")
+ .setDismissText("Next")
+ .setDismissOnTouch(true)
+ .build());
+
+ sequence.addSequenceItem(new MaterialShowcaseView.Builder(this)
+ .setTarget(imageView)
+ .withCircleShape()
+ .setContentText("OK")
+ .setDismissText("This shows the imageView object in the entire row")
+ .setDismissOnTouch(true)
+ .build());
+
+ sequence.start();
+ }
+}
\ No newline at end of file
diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml
index d6e92a46..84e529d8 100644
--- a/sample/src/main/res/layout/activity_main.xml
+++ b/sample/src/main/res/layout/activity_main.xml
@@ -41,6 +41,14 @@
android:text="Tooltip Style Example"
android:layout_margin="10dp"/>
+
+