diff --git a/README-en.md b/README-en.md
index 7c4aa80..9d0bb71 100644
--- a/README-en.md
+++ b/README-en.md
@@ -15,7 +15,7 @@ StateView is an invisible, zero-sized View that can be used to lazily inflate lo
 add the dependency to your build.gradle:
 
 ```groovy
-   compile 'com.github.nukc.stateview:library:1.3.4'
+   compile 'com.github.nukc.stateview:library:1.5.0'
 
    // animator providers
    compile 'com.github.nukc.stateview:animations:1.0.1'
@@ -42,6 +42,9 @@ Can be directly used in java.
     mStateView = StateView.inject(View view, boolean hasActionBar);
 ```
 
+```java
+    mStateView = StateView.wrap(View view);
+```
 
 Or include the StateView widget in your layout.
 
diff --git a/README.md b/README.md
index 2532df1..421029c 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ StateView 一个轻量级的控件, 继承自 `View`, 吸收了 `ViewStub` 的
 
 
 ```groovy
-   compile 'com.github.nukc.stateview:library:1.3.4'
+   compile 'com.github.nukc.stateview:library:1.5.0'
 
    // animator providers
    compile 'com.github.nukc.stateview:animations:1.0.1'
@@ -42,6 +42,11 @@ StateView 一个轻量级的控件, 继承自 `View`, 吸收了 `ViewStub` 的
     mStateView = StateView.inject(View view, boolean hasActionBar);
 ```
 
+- 包裹指定的 View,这个会增加层次
+```java
+    mStateView = StateView.wrap(View view);
+```
+
 或添加到布局:
 
 ```xml
diff --git a/animations/build.gradle b/animations/build.gradle
index 49d1b77..dff213f 100644
--- a/animations/build.gradle
+++ b/animations/build.gradle
@@ -26,7 +26,7 @@ dependencies {
     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
         exclude group: 'com.android.support', module: 'support-annotations'
     })
-    compile 'com.android.support:appcompat-v7:27.0.2'
+    compile 'com.android.support:appcompat-v7:27.1.0'
     testCompile 'junit:junit:4.12'
     compile project(':library')
 }
diff --git a/app/build.gradle b/app/build.gradle
index ce69e57..eec0a97 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,7 +23,7 @@ android {
 }
 
 ext {
-    supportLibVersion = '27.0.2'
+    supportLibVersion = '27.1.0'
 }
 
 dependencies {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0f06c94..4bf26fd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -29,6 +29,7 @@
             android:name=".DrawerLayoutActivity"
             android:label="@string/title_activity_drawer_layout"
             android:theme="@style/AppTheme.NoActionBar"></activity>
+        <activity android:name=".WrapActivity" />
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/github/nukc/sample/MainActivity.java b/app/src/main/java/com/github/nukc/sample/MainActivity.java
index 1440ad4..b7b0800 100644
--- a/app/src/main/java/com/github/nukc/sample/MainActivity.java
+++ b/app/src/main/java/com/github/nukc/sample/MainActivity.java
@@ -74,5 +74,12 @@ public void onClick(View view) {
                 startActivity(new Intent(MainActivity.this, DrawerLayoutActivity.class));
             }
         });
+
+        findViewById(R.id.btn_wrap_view).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                startActivity(new Intent(MainActivity.this, WrapActivity.class));
+            }
+        });
     }
 }
diff --git a/app/src/main/java/com/github/nukc/sample/WrapActivity.java b/app/src/main/java/com/github/nukc/sample/WrapActivity.java
new file mode 100644
index 0000000..4e1ef35
--- /dev/null
+++ b/app/src/main/java/com/github/nukc/sample/WrapActivity.java
@@ -0,0 +1,59 @@
+package com.github.nukc.sample;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+
+import com.github.nukc.stateview.StateView;
+import com.github.nukc.stateview.animations.FadeScaleAnimatorProvider;
+import com.github.nukc.stateview.animations.SlideAnimatorProvider;
+
+public class WrapActivity extends AppCompatActivity {
+
+    private static final String TAG = WrapActivity.class.getSimpleName();
+
+    private StateView mStateView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_inject);
+
+        mStateView = StateView.wrap(findViewById(R.id.text_view));
+        mStateView.setAnimatorProvider(new FadeScaleAnimatorProvider());
+        mStateView.setOnRetryClickListener(new StateView.OnRetryClickListener() {
+            @Override
+            public void onRetryClick() {
+                //do something
+                mStateView.showRetry();
+            }
+        });
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        new MenuInflater(this).inflate(R.menu.menu_inject, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.show_empty:
+                mStateView.showEmpty();
+                break;
+            case R.id.show_retry:
+                mStateView.showRetry();
+                break;
+            case R.id.show_loading:
+                mStateView.showLoading();
+                break;
+            case R.id.show_content:
+                mStateView.showContent();
+                break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/app/src/main/res/layout/activity_inject.xml b/app/src/main/res/layout/activity_inject.xml
index a2bc599..40c791e 100644
--- a/app/src/main/res/layout/activity_inject.xml
+++ b/app/src/main/res/layout/activity_inject.xml
@@ -6,9 +6,11 @@
     tools:context="com.github.nukc.sample.InjectActivity">
 
     <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+        android:id="@+id/text_view"
+        android:layout_width="100dp"
+        android:layout_height="100dp"
         android:layout_gravity="center"
+        android:gravity="center"
         android:textAppearance="@style/TextAppearance.AppCompat.Title"
         android:text="Content"/>
 
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 24efb58..914292c 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -63,4 +63,10 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="Inject DrawerLayout"/>
+
+    <Button
+        android:id="@+id/btn_wrap_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="Wrap View"/>
 </LinearLayout>
diff --git a/bintray.gradle b/bintray.gradle
index 360364e..19d3484 100644
--- a/bintray.gradle
+++ b/bintray.gradle
@@ -5,7 +5,7 @@ def siteUrl = 'https://github.com/nukc/StateView'      // 项目的主页
 def gitUrl = 'https://github.com/nukc/StateView.git'   // Git仓库的url
 
 group = "com.github.nukc.stateview"
-version = "1.3.4"
+version = "1.5.0"
 
 install {
     repositories.mavenInstaller {
diff --git a/library/build.gradle b/library/build.gradle
index 1493531..964b7fd 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -8,7 +8,7 @@ android {
         minSdkVersion 15
         targetSdkVersion 27
         versionCode 21
-        versionName "1.3.3"
+        versionName "1.5.0"
     }
     buildTypes {
         release {
@@ -24,7 +24,7 @@ android {
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     testCompile 'junit:junit:4.12'
-    compile 'com.android.support:appcompat-v7:27.0.2'
+    compile 'com.android.support:appcompat-v7:27.1.0'
 }
 
 apply from: '../bintray.gradle'
diff --git a/library/src/main/java/com/github/nukc/stateview/StateView.java b/library/src/main/java/com/github/nukc/stateview/StateView.java
index 4e61757..87f106c 100644
--- a/library/src/main/java/com/github/nukc/stateview/StateView.java
+++ b/library/src/main/java/com/github/nukc/stateview/StateView.java
@@ -235,6 +235,22 @@ public static StateView inject(@NonNull View view, boolean hasActionBar) {
         }
     }
 
+    /**
+     * 包裹 view
+     * @param view target view
+     * @return StateView
+     */
+    public static StateView wrap(@NonNull View view) {
+        ViewGroup parent = (ViewGroup) view.getParent();
+        parent.removeView(view);
+        FrameLayout wrap = new FrameLayout(view.getContext());
+        wrap.addView(view);
+        StateView stateView = new StateView(view.getContext());
+        wrap.addView(stateView, view.getLayoutParams());
+        parent.addView(wrap);
+        return stateView;
+    }
+
     public StateView(Context context) {
         this(context, null);
     }