targetSdkVersion rootProject.ext.targetSdkVersion | targetSdkVersion rootProject.ext.targetSdkVersion | ||||
versionCode 10 | versionCode 10 | ||||
versionName "1.0" | versionName "1.0" | ||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | |||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | |||||
// 混淆配置 | // 混淆配置 | ||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-app.pro' | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-app.pro' | ||||
// 友盟隔离 | // 友盟隔离 | ||||
implementation project(':umeng') | implementation project(':umeng') | ||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:support-v4:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:cardview-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support.constraint:constraint-layout:$rootProject.ext.constraintLayoutVersion" | |||||
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' | |||||
implementation 'com.google.android.material:material:1.1.0-alpha06' | |||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0' | |||||
implementation 'androidx.cardview:cardview:1.0.0' | |||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha5' | |||||
// Dex分包,解决 64k 问题 | // Dex分包,解决 64k 问题 | ||||
implementation 'com.android.support:multidex:1.0.3' | |||||
implementation 'androidx.multidex:multidex:2.0.1' | |||||
// ButterKnife 注解库:https://github.com/JakeWharton/butterknife | // ButterKnife 注解库:https://github.com/JakeWharton/butterknife | ||||
implementation 'com.jakewharton:butterknife:9.0.0-rc1' | implementation 'com.jakewharton:butterknife:9.0.0-rc1' |
<!-- 适配Android 7.0文件意图 --> | <!-- 适配Android 7.0文件意图 --> | ||||
<provider | <provider | ||||
android:name="android.support.v4.content.FileProvider" | |||||
android:name="androidx.core.content.FileProvider" | |||||
android:authorities="${applicationId}.provider" | android:authorities="${applicationId}.provider" | ||||
android:exported="false" | android:exported="false" | ||||
android:grantUriPermissions="true"> | android:grantUriPermissions="true"> |
import android.content.pm.ActivityInfo; | import android.content.pm.ActivityInfo; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.StringRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.StringRes; | |||||
import android.util.Log; | import android.util.Log; | ||||
import android.view.View; | import android.view.View; | ||||
import android.app.Application; | import android.app.Application; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.multidex.MultiDex; | |||||
import androidx.multidex.MultiDex; | |||||
import com.hjq.demo.other.EventBusManager; | import com.hjq.demo.other.EventBusManager; | ||||
import com.hjq.image.ImageLoader; | import com.hjq.image.ImageLoader; |
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Bundle; | import android.os.Bundle; | ||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.StringRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.StringRes; | |||||
import android.util.Log; | import android.util.Log; | ||||
import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||
import android.view.View; | import android.view.View; |
package com.hjq.demo.common; | package com.hjq.demo.common; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.ColorInt; | |||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.IdRes; | |||||
import android.support.annotation.StringRes; | |||||
import androidx.annotation.ColorInt; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.IdRes; | |||||
import androidx.annotation.StringRes; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import android.widget.CompoundButton; | import android.widget.CompoundButton; |
package com.hjq.demo.common; | package com.hjq.demo.common; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.ColorInt; | |||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.IdRes; | |||||
import android.support.annotation.StringRes; | |||||
import androidx.annotation.ColorInt; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.IdRes; | |||||
import androidx.annotation.StringRes; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import android.widget.CompoundButton; | import android.widget.CompoundButton; |
package com.hjq.demo.helper; | package com.hjq.demo.helper; | ||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.support.v4.util.ArrayMap; | |||||
import androidx.collection.ArrayMap; | |||||
/** | /** | ||||
* author : Android 轮子哥 | * author : Android 轮子哥 |
return this; | return this; | ||||
} | } | ||||
public IntentExtraUtils startActivity(android.support.v4.app.Fragment fragment, int requestCode) { | |||||
public IntentExtraUtils startActivity(androidx.fragment.app.Fragment fragment, int requestCode) { | |||||
fragment.startActivityForResult(new Intent(fragment.getActivity(), sCurrentClass), requestCode); | fragment.startActivityForResult(new Intent(fragment.getActivity(), sCurrentClass), requestCode); | ||||
return this; | return this; | ||||
} | } |
import android.content.Context; | import android.content.Context; | ||||
import android.graphics.Color; | import android.graphics.Color; | ||||
import android.graphics.drawable.ColorDrawable; | import android.graphics.drawable.ColorDrawable; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import android.view.animation.Animation; | import android.view.animation.Animation; |
package com.hjq.demo.helper; | package com.hjq.demo.helper; | ||||
import android.support.annotation.IdRes; | |||||
import androidx.annotation.IdRes; | |||||
import android.view.View; | import android.view.View; | ||||
import android.widget.CompoundButton; | import android.widget.CompoundButton; | ||||
import android.widget.RadioButton; | import android.widget.RadioButton; |
package com.hjq.demo.other; | package com.hjq.demo.other; | ||||
import android.support.v4.util.ArrayMap; | |||||
import androidx.collection.ArrayMap; | |||||
import com.hjq.demo.MyEventBusIndex; | import com.hjq.demo.MyEventBusIndex; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.net.ConnectivityManager; | import android.net.ConnectivityManager; | ||||
import android.net.NetworkInfo; | import android.net.NetworkInfo; | ||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.RequiresPermission; | |||||
import android.support.annotation.StringRes; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.RequiresPermission; | |||||
import androidx.annotation.StringRes; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.content.Intent; | import android.content.Intent; | ||||
import android.content.pm.PackageManager; | import android.content.pm.PackageManager; | ||||
import android.support.annotation.Nullable; | |||||
import androidx.annotation.Nullable; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; | ||||
import android.widget.ImageView; | import android.widget.ImageView; |
package com.hjq.demo.ui.activity; | package com.hjq.demo.ui.activity; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.design.widget.BottomNavigationView; | |||||
import android.support.v4.view.ViewPager; | |||||
import androidx.annotation.NonNull; | |||||
import com.google.android.material.bottomnavigation.BottomNavigationView; | |||||
import androidx.viewpager.widget.ViewPager; | |||||
import android.view.KeyEvent; | import android.view.KeyEvent; | ||||
import android.view.MenuItem; | import android.view.MenuItem; | ||||
package com.hjq.demo.ui.activity; | package com.hjq.demo.ui.activity; | ||||
import android.content.Intent; | import android.content.Intent; | ||||
import android.support.annotation.Nullable; | |||||
import androidx.annotation.Nullable; | |||||
import android.view.View; | import android.view.View; | ||||
import android.widget.Button; | import android.widget.Button; | ||||
import android.widget.EditText; | import android.widget.EditText; |
package com.hjq.demo.ui.activity; | package com.hjq.demo.ui.activity; | ||||
import android.support.v4.view.ViewPager; | |||||
import androidx.viewpager.widget.ViewPager; | |||||
import com.hjq.demo.R; | import com.hjq.demo.R; | ||||
import com.hjq.demo.common.MyActivity; | import com.hjq.demo.common.MyActivity; |
package com.hjq.demo.ui.adapter; | package com.hjq.demo.ui.adapter; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.NonNull; | |||||
import androidx.annotation.NonNull; | |||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import com.hjq.demo.R; | import com.hjq.demo.R; |
package com.hjq.demo.ui.adapter; | package com.hjq.demo.ui.adapter; | ||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.view.PagerAdapter; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.viewpager.widget.PagerAdapter; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
package com.hjq.demo.ui.dialog; | package com.hjq.demo.ui.dialog; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import com.hjq.base.BaseDialog; | import com.hjq.base.BaseDialog; |
import android.content.Context; | import android.content.Context; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v7.widget.GridLayoutManager; | |||||
import android.support.v7.widget.RecyclerView; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.recyclerview.widget.GridLayoutManager; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.util.TypedValue; | import android.util.TypedValue; | ||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; |
import android.os.Handler; | import android.os.Handler; | ||||
import android.os.Looper; | import android.os.Looper; | ||||
import android.os.Message; | import android.os.Message; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v4.content.FileProvider; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.core.content.FileProvider; | |||||
import android.text.format.Formatter; | import android.text.format.Formatter; | ||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; |
package com.hjq.demo.ui.fragment; | package com.hjq.demo.ui.fragment; | ||||
import android.support.design.widget.AppBarLayout; | |||||
import android.support.v7.widget.Toolbar; | |||||
import com.google.android.material.appbar.AppBarLayout; | |||||
import androidx.appcompat.widget.Toolbar; | |||||
import android.widget.TextView; | import android.widget.TextView; | ||||
import com.gyf.barlibrary.ImmersionBar; | import com.gyf.barlibrary.ImmersionBar; |
package com.hjq.demo.widget; | package com.hjq.demo.widget; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.v4.view.ViewPager; | |||||
import androidx.viewpager.widget.ViewPager; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.view.MotionEvent; | import android.view.MotionEvent; | ||||
package com.hjq.demo.widget; | package com.hjq.demo.widget; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.design.widget.CollapsingToolbarLayout; | |||||
import com.google.android.material.appbar.CollapsingToolbarLayout; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
/** | /** |
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
app:title="对话框案例" /> | app:title="对话框案例" /> | ||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
</LinearLayout> | </LinearLayout> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
</LinearLayout> | </LinearLayout> |
android:layout_weight="1" | android:layout_weight="1" | ||||
android:fitsSystemWindows="false" /> | android:fitsSystemWindows="false" /> | ||||
<android.support.design.widget.BottomNavigationView | |||||
<com.google.android.material.bottomnavigation.BottomNavigationView | |||||
android:id="@+id/bv_home_navigation" | android:id="@+id/bv_home_navigation" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" |
app:leftTitle="@string/register_login" | app:leftTitle="@string/register_login" | ||||
app:title="" /> | app:title="" /> | ||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
</LinearLayout> | </LinearLayout> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
</LinearLayout> | </LinearLayout> |
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
<android.support.v7.widget.RecyclerView | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
tools:listCount="10" | tools:listCount="10" |
</LinearLayout> | </LinearLayout> | ||||
<!--这个地方需要设置可以滚动--> | <!--这个地方需要设置可以滚动--> | ||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:overScrollMode="never" | android:overScrollMode="never" | ||||
android:textSize="13sp" | android:textSize="13sp" | ||||
tools:text="更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n" /> | tools:text="更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n更新内容\n" /> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
<com.hjq.widget.NumberProgressBar | <com.hjq.widget.NumberProgressBar | ||||
android:id="@+id/pb_dialog_update_progress" | android:id="@+id/pb_dialog_update_progress" |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||||
xmlns:app="http://schemas.android.com/apk/res-auto" | xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
xmlns:tools="http://schemas.android.com/tools" | xmlns:tools="http://schemas.android.com/tools" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
tools:context=".ui.fragment.TestFragmentA"> | tools:context=".ui.fragment.TestFragmentA"> | ||||
<android.support.design.widget.AppBarLayout | |||||
<com.google.android.material.appbar.AppBarLayout | |||||
android:id="@+id/abl_test_bar" | android:id="@+id/abl_test_bar" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:src="@drawable/bg_launcher" | android:src="@drawable/bg_launcher" | ||||
app:layout_collapseMode="parallax" /> | app:layout_collapseMode="parallax" /> | ||||
<android.support.v7.widget.Toolbar | |||||
<androidx.appcompat.widget.Toolbar | |||||
android:id="@+id/t_test_title" | android:id="@+id/t_test_title" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="?android:attr/actionBarSize" | android:layout_height="?android:attr/actionBarSize" | ||||
</com.hjq.demo.widget.XCollapsingToolbarLayout> | </com.hjq.demo.widget.XCollapsingToolbarLayout> | ||||
</android.support.design.widget.AppBarLayout> | |||||
</com.google.android.material.appbar.AppBarLayout> | |||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"> | app:layout_behavior="@string/appbar_scrolling_view_behavior"> | ||||
</LinearLayout> | </LinearLayout> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
</android.support.design.widget.CoordinatorLayout> | |||||
</androidx.coordinatorlayout.widget.CoordinatorLayout> |
app:backButton="false" | app:backButton="false" | ||||
app:title="@string/home_nav_found" /> | app:title="@string/home_nav_found" /> | ||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
</LinearLayout> | </LinearLayout> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
</LinearLayout> | </LinearLayout> |
app:backButton="false" | app:backButton="false" | ||||
app:title="@string/home_nav_message" /> | app:title="@string/home_nav_message" /> | ||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
android:text="关闭界面侧滑" /> | android:text="关闭界面侧滑" /> | ||||
</LinearLayout> | </LinearLayout> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
</LinearLayout> | </LinearLayout> |
app:backButton="false" | app:backButton="false" | ||||
app:title="@string/home_nav_me" /> | app:title="@string/home_nav_me" /> | ||||
<android.support.v4.widget.NestedScrollView | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
</LinearLayout> | </LinearLayout> | ||||
</android.support.v4.widget.NestedScrollView> | |||||
</androidx.core.widget.NestedScrollView> | |||||
</LinearLayout> | </LinearLayout> |
} | } | ||||
dependencies { | dependencies { | ||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion" | |||||
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' | |||||
implementation 'com.google.android.material:material:1.1.0-alpha06' | |||||
} | } |
import android.os.Handler; | import android.os.Handler; | ||||
import android.os.Looper; | import android.os.Looper; | ||||
import android.os.SystemClock; | import android.os.SystemClock; | ||||
import android.support.annotation.Nullable; | |||||
import android.support.v7.app.AppCompatActivity; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.appcompat.app.AppCompatActivity; | |||||
import android.view.View; | import android.view.View; | ||||
import android.view.inputmethod.InputMethodManager; | import android.view.inputmethod.InputMethodManager; | ||||
import android.os.Handler; | import android.os.Handler; | ||||
import android.os.Looper; | import android.os.Looper; | ||||
import android.os.SystemClock; | import android.os.SystemClock; | ||||
import android.support.annotation.ColorRes; | |||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.IdRes; | |||||
import android.support.annotation.LayoutRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.StringRes; | |||||
import android.support.annotation.StyleRes; | |||||
import android.support.v7.app.AppCompatDialog; | |||||
import androidx.annotation.ColorRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.IdRes; | |||||
import androidx.annotation.LayoutRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.StringRes; | |||||
import androidx.annotation.StyleRes; | |||||
import androidx.appcompat.app.AppCompatDialog; | |||||
import android.util.SparseArray; | import android.util.SparseArray; | ||||
import android.util.SparseIntArray; | import android.util.SparseIntArray; | ||||
import android.view.Gravity; | import android.view.Gravity; |
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.os.Bundle; | import android.os.Bundle; | ||||
import android.os.SystemClock; | import android.os.SystemClock; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.v4.app.DialogFragment; | |||||
import android.support.v4.app.Fragment; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v4.app.FragmentManager; | |||||
import android.support.v4.app.FragmentTransaction; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.fragment.app.DialogFragment; | |||||
import androidx.fragment.app.Fragment; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentManager; | |||||
import androidx.fragment.app.FragmentTransaction; | |||||
/** | /** | ||||
* author : Android 轮子哥 | * author : Android 轮子哥 |
package com.hjq.base; | package com.hjq.base; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.app.Fragment; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v4.app.FragmentManager; | |||||
import android.support.v4.app.FragmentPagerAdapter; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.fragment.app.Fragment; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentManager; | |||||
import androidx.fragment.app.FragmentPagerAdapter; | |||||
import android.view.ViewGroup; | import android.view.ViewGroup; | ||||
import java.util.ArrayList; | import java.util.ArrayList; |
import android.content.Context; | import android.content.Context; | ||||
import android.content.Intent; | import android.content.Intent; | ||||
import android.os.Bundle; | import android.os.Bundle; | ||||
import android.support.annotation.IdRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.v4.app.Fragment; | |||||
import androidx.annotation.IdRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.fragment.app.Fragment; | |||||
import android.view.KeyEvent; | import android.view.KeyEvent; | ||||
import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||
import android.view.View; | import android.view.View; |
import android.content.res.Resources; | import android.content.res.Resources; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.ColorRes; | |||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.IdRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.StringRes; | |||||
import androidx.annotation.ColorRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.IdRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.StringRes; | |||||
import android.util.SparseArray; | import android.util.SparseArray; | ||||
import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||
import android.view.View; | import android.view.View; |
import android.content.res.Resources; | import android.content.res.Resources; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.ColorRes; | |||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.IdRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.StringRes; | |||||
import android.support.v7.widget.LinearLayoutManager; | |||||
import android.support.v7.widget.RecyclerView; | |||||
import androidx.annotation.ColorRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.IdRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.StringRes; | |||||
import androidx.recyclerview.widget.LinearLayoutManager; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.util.SparseArray; | import android.util.SparseArray; | ||||
import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||
import android.view.View; | import android.view.View; |
} | } | ||||
dependencies { | dependencies { | ||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion" | |||||
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' | |||||
implementation 'com.google.android.material:material:1.1.0-alpha06' | |||||
// 基础库(不包任何第三方框架) | // 基础库(不包任何第三方框架) | ||||
implementation project(':base') | implementation project(':base') | ||||
} | } |
package com.hjq.dialog; | package com.hjq.dialog; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.util.DisplayMetrics; | import android.util.DisplayMetrics; | ||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; |
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.design.widget.TabLayout; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v7.widget.RecyclerView; | |||||
import androidx.annotation.NonNull; | |||||
import com.google.android.material.tabs.TabLayout; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.util.DisplayMetrics; | import android.util.DisplayMetrics; | ||||
import android.util.TypedValue; | import android.util.TypedValue; | ||||
import android.view.Gravity; | import android.view.Gravity; |
package com.hjq.dialog; | package com.hjq.dialog; | ||||
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import com.hjq.dialog.widget.LoopView; | import com.hjq.dialog.widget.LoopView; | ||||
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; | ||||
import android.view.inputmethod.InputMethodManager; | import android.view.inputmethod.InputMethodManager; |
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v7.widget.LinearLayoutManager; | |||||
import android.support.v7.widget.RecyclerView; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.recyclerview.widget.LinearLayoutManager; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; |
package com.hjq.dialog; | package com.hjq.dialog; | ||||
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; | ||||
import android.widget.TextView; | import android.widget.TextView; |
import android.app.Dialog; | import android.app.Dialog; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import android.support.v7.widget.GridLayoutManager; | |||||
import android.support.v7.widget.RecyclerView; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import androidx.recyclerview.widget.GridLayoutManager; | |||||
import androidx.recyclerview.widget.RecyclerView; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; |
package com.hjq.dialog; | package com.hjq.dialog; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.widget.ImageView; | import android.widget.ImageView; | ||||
import android.widget.TextView; | import android.widget.TextView; |
package com.hjq.dialog; | package com.hjq.dialog; | ||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.view.Gravity; | import android.view.Gravity; | ||||
import android.view.View; | import android.view.View; | ||||
import android.widget.TextView; | import android.widget.TextView; |
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.os.SystemClock; | import android.os.SystemClock; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.util.TypedValue; | import android.util.TypedValue; | ||||
import android.view.View; | import android.view.View; |
import android.graphics.Canvas; | import android.graphics.Canvas; | ||||
import android.graphics.Paint; | import android.graphics.Paint; | ||||
import android.graphics.Path; | import android.graphics.Path; | ||||
import android.support.annotation.Nullable; | |||||
import androidx.annotation.Nullable; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.util.TypedValue; | import android.util.TypedValue; | ||||
import android.view.View; | import android.view.View; |
android:layout_height="1px" | android:layout_height="1px" | ||||
android:background="#ececec" /> | android:background="#ececec" /> | ||||
<android.support.design.widget.TabLayout | |||||
<com.google.android.material.tabs.TabLayout | |||||
android:id="@+id/tb_dialog_address_tab" | android:id="@+id/tb_dialog_address_tab" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
<android.support.v7.widget.RecyclerView | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/rv_dialog_address_list1" | android:id="@+id/rv_dialog_address_list1" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
android:visibility="visible" /> | android:visibility="visible" /> | ||||
<android.support.v7.widget.RecyclerView | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/rv_dialog_address_list2" | android:id="@+id/rv_dialog_address_list2" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
android:visibility="gone" /> | android:visibility="gone" /> | ||||
<android.support.v7.widget.RecyclerView | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/rv_dialog_address_list3" | android:id="@+id/rv_dialog_address_list3" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
android:visibility="gone" /> | android:visibility="gone" /> | ||||
<android.support.v7.widget.AppCompatImageView | |||||
<androidx.appcompat.widget.AppCompatImageView | |||||
android:id="@+id/iv_dialog_address_hint" | android:id="@+id/iv_dialog_address_hint" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" |
android:paddingLeft="30dp" | android:paddingLeft="30dp" | ||||
android:paddingRight="30dp"> | android:paddingRight="30dp"> | ||||
<android.support.v7.widget.RecyclerView | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/rv_dialog_menu_list" | android:id="@+id/rv_dialog_menu_list" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_marginBottom="10dp" | android:layout_marginBottom="10dp" | ||||
android:background="@drawable/dialog_message_bg" | android:background="@drawable/dialog_message_bg" | ||||
android:overScrollMode="never" | android:overScrollMode="never" | ||||
tools:layoutManager="android.support.v7.widget.LinearLayoutManager" | |||||
tools:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" | |||||
tools:listitem="@layout/item_dialog_menu" /> | tools:listitem="@layout/item_dialog_menu" /> | ||||
<TextView | <TextView |
android:layout_height="1px" | android:layout_height="1px" | ||||
android:background="#ECECEC" /> | android:background="#ECECEC" /> | ||||
<android.support.v7.widget.RecyclerView | |||||
<androidx.recyclerview.widget.RecyclerView | |||||
android:id="@+id/rv_dialog_pay_list" | android:id="@+id/rv_dialog_pay_list" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:overScrollMode="never" | android:overScrollMode="never" | ||||
tools:layoutManager="android.support.v7.widget.GridLayoutManager" | |||||
tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager" | |||||
tools:listitem="@layout/item_dialog_pay_password" | tools:listitem="@layout/item_dialog_pay_password" | ||||
tools:spanCount="3" /> | tools:spanCount="3" /> | ||||
# Specifies the JVM arguments used for the daemon process. | # Specifies the JVM arguments used for the daemon process. | ||||
# The setting is particularly useful for tweaking memory settings. | # The setting is particularly useful for tweaking memory settings. | ||||
android.enableJetifier=true | |||||
android.useAndroidX=true | |||||
org.gradle.jvmargs=-Xmx1536m | org.gradle.jvmargs=-Xmx1536m | ||||
# When configured, Gradle will run in incubating parallel mode. | # When configured, Gradle will run in incubating parallel mode. |
} | } | ||||
dependencies { | dependencies { | ||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion" | |||||
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' | |||||
implementation 'com.google.android.material:material:1.1.0-alpha06' | |||||
implementation 'com.github.bumptech.glide:glide:4.9.0' | implementation 'com.github.bumptech.glide:glide:4.9.0' | ||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' | annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' | ||||
} | } |
import android.graphics.Paint; | import android.graphics.Paint; | ||||
import android.graphics.RectF; | import android.graphics.RectF; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.app.FragmentActivity; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.fragment.app.FragmentActivity; | |||||
import android.widget.ImageView; | import android.widget.ImageView; | ||||
import com.bumptech.glide.Glide; | import com.bumptech.glide.Glide; | ||||
} | } | ||||
} else if (object instanceof Fragment) { | } else if (object instanceof Fragment) { | ||||
return Glide.with((Fragment) object); | return Glide.with((Fragment) object); | ||||
}else if (object instanceof android.support.v4.app.Fragment) { | |||||
return Glide.with((android.support.v4.app.Fragment) object); | |||||
}else if (object instanceof androidx.fragment.app.Fragment) { | |||||
return Glide.with((androidx.fragment.app.Fragment) object); | |||||
} | } | ||||
// 直接抛出异常 | // 直接抛出异常 | ||||
throw new IllegalArgumentException("This object is illegal"); | throw new IllegalArgumentException("This object is illegal"); |
import android.app.Application; | import android.app.Application; | ||||
import android.app.Fragment; | import android.app.Fragment; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.NonNull; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.NonNull; | |||||
import android.widget.ImageView; | import android.widget.ImageView; | ||||
/** | /** | ||||
public static void loadImage(Fragment fragment, @NonNull ImageView imageView, String url) { | public static void loadImage(Fragment fragment, @NonNull ImageView imageView, String url) { | ||||
sImageHandler.loadImage(fragment, imageView, url); | sImageHandler.loadImage(fragment, imageView, url); | ||||
} | } | ||||
public static void loadImage(android.support.v4.app.Fragment fragment, @NonNull ImageView imageView, String url) { | |||||
public static void loadImage(androidx.fragment.app.Fragment fragment, @NonNull ImageView imageView, String url) { | |||||
sImageHandler.loadImage(fragment, imageView, url); | sImageHandler.loadImage(fragment, imageView, url); | ||||
} | } | ||||
public static void loadImage(Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | public static void loadImage(Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | ||||
sImageHandler.loadImage(fragment, imageView, resourceId); | sImageHandler.loadImage(fragment, imageView, resourceId); | ||||
} | } | ||||
public static void loadImage(android.support.v4.app.Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | |||||
public static void loadImage(androidx.fragment.app.Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | |||||
sImageHandler.loadImage(fragment, imageView, resourceId); | sImageHandler.loadImage(fragment, imageView, resourceId); | ||||
} | } | ||||
public static void loadCircleImage(Fragment fragment, @NonNull ImageView imageView, String url) { | public static void loadCircleImage(Fragment fragment, @NonNull ImageView imageView, String url) { | ||||
sImageHandler.loadCircleImage(fragment, imageView, url); | sImageHandler.loadCircleImage(fragment, imageView, url); | ||||
} | } | ||||
public static void loadCircleImage(android.support.v4.app.Fragment fragment, @NonNull ImageView imageView, String url) { | |||||
public static void loadCircleImage(androidx.fragment.app.Fragment fragment, @NonNull ImageView imageView, String url) { | |||||
sImageHandler.loadCircleImage(fragment, imageView, url); | sImageHandler.loadCircleImage(fragment, imageView, url); | ||||
} | } | ||||
public static void loadCircleImage(Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | public static void loadCircleImage(Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | ||||
sImageHandler.loadCircleImage(fragment, imageView, resourceId); | sImageHandler.loadCircleImage(fragment, imageView, resourceId); | ||||
} | } | ||||
public static void loadCircleImage(android.support.v4.app.Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | |||||
public static void loadCircleImage(androidx.fragment.app.Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId) { | |||||
sImageHandler.loadCircleImage(fragment, imageView, resourceId); | sImageHandler.loadCircleImage(fragment, imageView, resourceId); | ||||
} | } | ||||
public static void loadRoundImage(Fragment fragment, @NonNull ImageView imageView, String url, float radius) { | public static void loadRoundImage(Fragment fragment, @NonNull ImageView imageView, String url, float radius) { | ||||
sImageHandler.loadRoundImage(fragment, imageView, url, radius); | sImageHandler.loadRoundImage(fragment, imageView, url, radius); | ||||
} | } | ||||
public static void loadRoundImage(android.support.v4.app.Fragment fragment, @NonNull ImageView imageView, String url, float radius) { | |||||
public static void loadRoundImage(androidx.fragment.app.Fragment fragment, @NonNull ImageView imageView, String url, float radius) { | |||||
sImageHandler.loadRoundImage(fragment, imageView, url, radius); | sImageHandler.loadRoundImage(fragment, imageView, url, radius); | ||||
} | } | ||||
public static void loadRoundImage(Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId, float radius) { | public static void loadRoundImage(Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId, float radius) { | ||||
sImageHandler.loadRoundImage(fragment, imageView, resourceId, radius); | sImageHandler.loadRoundImage(fragment, imageView, resourceId, radius); | ||||
} | } | ||||
public static void loadRoundImage(android.support.v4.app.Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId, float radius) { | |||||
public static void loadRoundImage(androidx.fragment.app.Fragment fragment, @NonNull ImageView imageView, @DrawableRes int resourceId, float radius) { | |||||
sImageHandler.loadRoundImage(fragment, imageView, resourceId, radius); | sImageHandler.loadRoundImage(fragment, imageView, resourceId, radius); | ||||
} | } | ||||
} | } |
dependencies { | dependencies { | ||||
// 依赖 libs 目录下所有 Jar 包 | // 依赖 libs 目录下所有 Jar 包 | ||||
implementation fileTree(include: ['*.jar'], dir: 'libs') | implementation fileTree(include: ['*.jar'], dir: 'libs') | ||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' | |||||
} | } |
import android.content.Intent; | import android.content.Intent; | ||||
import android.content.pm.PackageManager; | import android.content.pm.PackageManager; | ||||
import android.os.Bundle; | import android.os.Bundle; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.v4.app.Fragment; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.fragment.app.Fragment; | |||||
import com.umeng.analytics.MobclickAgent; | import com.umeng.analytics.MobclickAgent; | ||||
import com.umeng.commonsdk.UMConfigure; | import com.umeng.commonsdk.UMConfigure; |
package com.hjq.umeng; | package com.hjq.umeng; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.DrawableRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import com.umeng.socialize.UMShareListener; | import com.umeng.socialize.UMShareListener; | ||||
import com.umeng.socialize.bean.SHARE_MEDIA; | import com.umeng.socialize.bean.SHARE_MEDIA; |
} | } | ||||
dependencies { | dependencies { | ||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" | |||||
implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion" | |||||
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' | |||||
implementation 'com.google.android.material:material:1.1.0-alpha06' | |||||
// 基础库(不包任何第三方框架) | // 基础库(不包任何第三方框架) | ||||
implementation project(':base') | implementation project(':base') | ||||
} | } |
import android.content.Context; | import android.content.Context; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.RequiresApi; | |||||
import android.support.v4.content.ContextCompat; | |||||
import android.support.v4.graphics.drawable.DrawableCompat; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.RequiresApi; | |||||
import androidx.core.content.ContextCompat; | |||||
import androidx.core.graphics.drawable.DrawableCompat; | |||||
import android.text.Editable; | import android.text.Editable; | ||||
import android.text.TextWatcher; | import android.text.TextWatcher; | ||||
import android.util.AttributeSet; | import android.util.AttributeSet; |
import android.annotation.SuppressLint; | import android.annotation.SuppressLint; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.RequiresApi; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.RequiresApi; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.widget.TextView; | import android.widget.TextView; | ||||
import android.content.res.TypedArray; | import android.content.res.TypedArray; | ||||
import android.graphics.drawable.Drawable; | import android.graphics.drawable.Drawable; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.AttrRes; | |||||
import android.support.annotation.DrawableRes; | |||||
import android.support.annotation.NonNull; | |||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.StringRes; | |||||
import androidx.annotation.AttrRes; | |||||
import androidx.annotation.DrawableRes; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.StringRes; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||
import android.view.MotionEvent; | import android.view.MotionEvent; |
import android.annotation.SuppressLint; | import android.annotation.SuppressLint; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.annotation.NonNull; | |||||
import android.support.v4.view.ViewPager; | |||||
import androidx.annotation.NonNull; | |||||
import androidx.viewpager.widget.ViewPager; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.view.KeyEvent; | import android.view.KeyEvent; | ||||
import android.view.MotionEvent; | import android.view.MotionEvent; |
import android.content.Context; | import android.content.Context; | ||||
import android.os.Build; | import android.os.Build; | ||||
import android.support.annotation.RequiresApi; | |||||
import androidx.annotation.RequiresApi; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.view.View; | import android.view.View; | ||||
import android.view.ViewGroup; | import android.view.ViewGroup; |
import android.os.Build; | import android.os.Build; | ||||
import android.os.Parcel; | import android.os.Parcel; | ||||
import android.os.Parcelable; | import android.os.Parcelable; | ||||
import android.support.annotation.Nullable; | |||||
import android.support.annotation.RequiresApi; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.annotation.RequiresApi; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
import android.util.TypedValue; | import android.util.TypedValue; | ||||
import android.view.MotionEvent; | import android.view.MotionEvent; |
package com.hjq.widget.square; | package com.hjq.widget.square; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.v7.widget.AppCompatImageView; | |||||
import androidx.appcompat.widget.AppCompatImageView; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
/** | /** |
package com.hjq.widget.square; | package com.hjq.widget.square; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.support.v7.widget.AppCompatTextView; | |||||
import androidx.appcompat.widget.AppCompatTextView; | |||||
import android.util.AttributeSet; | import android.util.AttributeSet; | ||||
/** | /** |