1.style
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<!--<item name="colorPrimary">@color/colorPrimary</item>-->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!--<item name="colorAccent">@color/colorAccent</item>-->
</style>
<!-- app启动页:预防启动白屏 -->
<style name="style_splash" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<activity
android:name="com.zliang.chunzhen.ui.Activity_Main"
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<color name="text_gray">#999999</color>//app字体灰色
<color name="text_hint">#999999</color>//app字体hint
<color name="text_black">#333333</color>//app字体黑色
<color name="common_gray">#F4F4F4</color>//app背景通用灰色
<color name="common_line_color">#E0E0E0</color>//app细线颜色
public class FragmentTabAdapter {
private List<Fragment> fragmentList; // 一个tab页面对应一个Fragment
private FragmentManager fragmentManager; // Fragment所属的Activity
private int fragmentContentId; // Activity中所要被替换的区域的id
private int currentTab=-1; // 当前Tab页面索引
《1》
public FragmentTabAdapter(FragmentManager fragmentManager, List<Fragment> fragmentList, int fragmentContentId, int index) {
this.fragmentManager = fragmentManager;
this.fragmentList = fragmentList;
this.fragmentContentId = fragmentContentId;
// 默认显示首页
setIndexSelected(index);
}
private void hideFragment(){
FragmentTransaction ft = fragmentManager.beginTransaction();
for (int i = 0; i <fragmentList.size() ; i++) {
if (fragmentList.get(i).isAdded()){
ft.hide(fragmentList.get(i));
}
}
ft.commit();
}
public void setIndexSelected(int index) {
if (currentTab == index) {
return;
}
//隐藏所有
hideFragment();
//显示
FragmentTransaction ft = fragmentManager.beginTransaction();
if (fragmentList.get(index).isAdded()){
ft.show(fragmentList.get(index));
}else {
ft.add(fragmentContentId, fragmentList.get(index));
}
ft.commit();
//再次赋值
currentTab = index;
}
public Fragment getCurrentFragment() {
return fragmentList.get(currentTab);
}
}
2.
public class FragmentVpAdapter extends FragmentStatePagerAdapter {
List<Fragment> list;
public FragmentVpAdapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getItemPosition(@NonNull @NotNull Object object) {
return POSITION_NONE;
}
}
public class ActivityManager {
private static ActivityManager sActivityManager;
private List mActivities = new ArrayList<>();
private ActivityManager() {
}
public static ActivityManager getInstance() {
if (sActivityManager == null) {
synchronized (ActivityManager.class) {
if (sActivityManager == null) {
sActivityManager = new ActivityManager();
}
}
}
return sActivityManager;
}
public List<Activity> getActivities() {
return mActivities;
}
public void addActivity(Activity activity) {
mActivities.add(activity);
}
public void finish(Activity activity) {
mActivities.remove(activity);
}
public void finishAll() {
for (int i = 0; i < mActivities.size(); i++) {
Activity activity = mActivities.get(i);
if (!activity.isFinishing()) {
activity.finish();
}
mActivities.remove(activity);
i--;
}
}
}
public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
public LayoutInflater inflater;
public View view;
public TextView titleName, textTitleRight;
public ImageView imgBack, imgTitleRight;
public Context mContext = this;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//沉浸式状态栏
StatusBarUtil.setStatusBarFullTransparent(this);
ActivityManager.getInstance().addActivity(this);
this.inflater = getLayoutInflater();// 调用Activity的getLayoutInflater()
setConvertView(savedInstanceState);
setContentView(view);
init();
}
private void init() {
findViewById();
setListener();
initData();
}
protected abstract void setConvertView(Bundle savedInstanceState);
protected abstract void findViewById();
protected abstract void setListener();
protected abstract void initData();
}
public abstract class BaseFragment extends Fragment implements View.OnClickListener {
public View mRootView;
public boolean isFirstLoad = true;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (mRootView == null) {
mRootView = initView();
}
if (isFirstLoad) {
isFirstLoad = false;
findViewById();
setListener();
initData();
}
return mRootView;
}
public abstract View initView();
protected abstract void findViewById();
protected abstract void setListener();
protected abstract void initData();
}
public class CommonAppContext extends MultiDexApplication {
public static CommonAppContext sInstance;
@Override
public void onCreate() {
super.onCreate();
sInstance = this;
LogUtils.syncIsDebug(this);
// //初始化Http
HttpClient.getInstance().init();
//极光推送
// JPushInterface.setDebugMode(false); // 设置开启日志,发布时请关闭日志
// JPushInterface.init(this);
//
// //友盟分享
// UmengInit.init(getApplicationContext());
}
//全局设置刷新样式,static 代码段可以防止内存泄露
static {
//设置全局的Header构建器
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
@Override
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
layout.setPrimaryColorsId(R.color.transparence, R.color.text_gray);//全局设置主题颜色(背景色,文字颜色)
layout.setHeaderHeight(60);
return new ClassicsHeader(context).setFinishDuration(0).setDrawableSize(15).setTextSizeTitle(13).setTextSizeTime(10);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
}
});
//设置全局的Footer构建器
SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
@Override
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
layout.setPrimaryColorsId(R.color.transparence, R.color.text_gray);//全局设置主题颜色(背景色,文字颜色)
layout.setFooterHeight(50);
//指定为经典Footer,默认是 BallPulseFooter
return new ClassicsFooter(context).setFinishDuration(0).setDrawableSize(15).setTextSizeTitle(13);
}
});
}
}
public class Constants {
//APP唯一名称标志
public static final String APP_TAG = "ChunZhen";
//APP文件路径
public static final String PATH_ROOT = Environment.getExternalStorageDirectory() + "/" + APP_TAG + "/";
public static final String PATH_CACHE = Environment.getExternalStorageDirectory() + "/" + APP_TAG + "/Cache/";
public static final String PATH_PHOTO = Environment.getExternalStorageDirectory() + "/" + APP_TAG + "/Image/";
public static final String PATH_APP_NATIVE = PATH_CACHE + APP_TAG + ".apk";
//刷新框架相关
public static final int AUTO_REFRESH_DELAY = 0;
public static final int AUTO_REFRESH_DURATION = 200;
public static final int AUTO_REFRESH_DRAGRATE = 1;
//分页加载最大个数
public static final int LIMIT_LIST_COUNT = 20;
//图片圆角度
public static final int IMG_ROUND_RADIUS = 25;
public static final int IMG_PREVIEW_SIZE = 400;
//短信验证码倒计时
public static final int SMS_CODE_TIME = 90 * 1000;
//轮播图倒计时
public static final int BANNER_TIME = 4 * 1000;
//登录类型
public static final int LOGIN_PWD = 0;
public static final int LOGIN_CODE = 1;
//支付汇总 1微信 2支付宝 3其他
public static final String PAY_BY_WX = "1";
public static final String PAY_BY_ZFB = "2";
public static final String PAY_BY_CARD = "3";
//APP升级的一些标识
public static final String APP_UPDATE_TAG = ".base.Service_Update_Apk";
//微信APPid
// public static final String WX_APP_ID = “wx00810f1f990ae3de”;
// public static final String WX_MiniProgram_ID = “gh_e1e15b136b7c”;
public static final String WX_MiniProgram_PATH = “pages/Pay/Pay?PayTempID=”;
public static void set_WX_APP_ID(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "WX_APP_ID", token);
}
public static String get_WX_APP_ID(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "WX_APP_ID");
}
//用户token
public static void set_WX_MiniProgram_ID(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "WX_MiniProgram_ID", token);
}
public static String get_WX_MiniProgram_ID(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "WX_MiniProgram_ID");
}
//用户token
public static void setUserToken(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "token", token);
}
public static String getUserToken(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "token");
}
//用户token
public static void setUserTokenShangJia(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "token_shangjia", token);
}
public static String getUserTokenShangJia(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "token_shangjia");
}
//用户id
public static void setUserId(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "id", id);
}
public static String getUserId(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "id");
}
//用户id
public static void setUserIdShangJia(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "id_shangjia", id);
}
public static String getUserIdShangJia(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "id_shangjia");
}
public static void setUserMobile(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "mobile", id);
}
public static String getUserMobile(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "mobile");
}
public static void setUserMobileShangJia(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "mobile_shangjia", id);
}
public static String getUserMobileShangJia(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "mobile_shangjia");
}
public static void setUserPwdShangJia(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "pwd_shangjia", id);
}
public static String getUserPwdShangJia(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "pwd_shangjia");
}
public static void setUserRole(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "role", id);
}
public static String getUserRole(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "role");
}
//
public static void setAppUpdateState(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "app_update", id);
}
public static String getAppUpdateState(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "app_update");
}
public static void setLat(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "lat", id);
}
public static String getLat(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "lat");
}
//
public static void setLng(Context context, String id) {
Utils.setDataToShare(context, APP_TAG, "lng", id);
}
public static String getLng(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "lng");
}
public static void setIsPush(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "is_push", token);
}
public static String getIsPush(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "is_push");
}
//是否同意协议
public static boolean isAgreeXieYi(Context context) {
if ("1".equals(getXieYiState(context))) {
return true;
}
return false;
}
//是否登陆过
public static boolean isLogin(Context context) {
if (!StringUtil.isEmpty(getUserId(context))) {
return true;
}
return false;
}
//用户协议
public static void setXieYiState(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "xieyi_state", token);
}
public static String getXieYiState(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "xieyi_state");
}
//用户协议
public static void setUserIsJoinChat(Context context, String token) {
Utils.setDataToShare(context, APP_TAG, "chat_state", token);
}
public static String getUserIsJoinChat(Context context) {
return Utils.getDataFromShare(context, APP_TAG, "chat_state");
}
//清空本地用户数据
public static void resetUserData(Context context) {
setUserId(context, "");
setUserToken(context, "");
// setUserMobile(context, “”);
}
//清空本地用户数据
public static void resetUserDataShangJia(Context context) {
setUserIdShangJia(context, "");
setUserTokenShangJia(context, "");
// setUserMobile(context, “”);
}
}
public class StatusBarUtil {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//去了状态栏
// }
//6.0以下状态栏不好适配,直接默认全是黑色,6.0以上可以适配
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.common_primary)); //这里动态修改状态栏颜色
// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);//针对浅色状态栏,文字自动变为深色字体
// }
/**
* 全透状态栏
*/
public static void setStatusBarFullTransparent(Activity context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色
Window window = context.getWindow();
View decorView = window.getDecorView();
//两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
decorView.setSystemUiVisibility(option);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
//导航栏颜色也可以正常设置
// window.setNavigationBarColor(Color.TRANSPARENT);
} else {
Window window = context.getWindow();
WindowManager.LayoutParams attributes = window.getAttributes();
int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
int flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
attributes.flags |= flagTranslucentStatus;
// attributes.flags |= flagTranslucentNavigation;
window.setAttributes(attributes);
}
}
// /**
// * 全透状态栏
// */
// @RequiresApi(api = Build.VERSION_CODES.M)
// public static void setStatusBarFullTransparent(Activity context) {
// if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
// Window window = context.getWindow();
// window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// | View.SYSTEM_UI_FLAG_LAYOUT_STABLE| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// window.setStatusBarColor(Color.TRANSPARENT);
// } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
// context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// //虚拟键盘也透明
// //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
// }
// }
// /**
// * 半透明状态栏
// */
// protected void setHalfTransparent() {
//
// if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
// View decorView = getWindow().getDecorView();
// int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
// decorView.setSystemUiVisibility(option);
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//
// } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// //虚拟键盘也透明
// // getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
// }
// }
//
//
// /**
// * 为了兼容4.4的抽屉布局->透明状态栏
// */
// protected void setDrawerLayoutFitSystemWindow() {
// if (Build.VERSION.SDK_INT == 19) {//19表示4.4
// int statusBarHeight = getStatusHeight(this);
// if (contentViewGroup == null) {
// contentViewGroup = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
// }
// if (contentViewGroup instanceof DrawerLayout) {
// DrawerLayout drawerLayout = (DrawerLayout) contentViewGroup;
// drawerLayout.setClipToPadding(true);
// drawerLayout.setFitsSystemWindows(false);
// for (int i = 0; i < drawerLayout.getChildCount(); i++) {
// View child = drawerLayout.getChildAt(i);
// child.setFitsSystemWindows(false);
// child.setPadding(0,statusBarHeight, 0, 0);
// }
//
// }
// }
// }
}