| | |
| | | import android.graphics.Color; |
| | | import android.graphics.drawable.ColorDrawable; |
| | | import android.os.Bundle; |
| | | import android.util.TypedValue; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | import android.view.ViewGroup; |
| | |
| | | import android.widget.PopupWindow; |
| | | import android.widget.TextView; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.annotation.Nullable; |
| | | import androidx.databinding.DataBindingUtil; |
| | | import androidx.databinding.ViewDataBinding; |
| | | import androidx.drawerlayout.widget.DrawerLayout; |
| | | |
| | | import com.android.app_base.base.BaseConfig; |
| | | import com.android.app_base.base.view.BaseFragment; |
| | | import com.android.app_base.base.viewmodel.BaseViewModel; |
| | | import com.android.app_base.manager.AppManager; |
| | | import com.android.app_base.manager.UserManager; |
| | | import com.android.app_base.utils.GlideUtil; |
| | | import com.android.app_base.utils.rxbus.MessageEvent; |
| | | import com.android.app_base.utils.rxbus.RxBus; |
| | | import com.application.zhangshi_app_android.R; |
| | | import com.application.zhangshi_app_android.ui.function.AnnualHealthStatusActivity; |
| | | import com.application.zhangshi_app_android.ui.function.CertificateOfHonorActivity; |
| | | import com.application.zhangshi_app_android.ui.function.CleanStorageActivity; |
| | | import com.application.zhangshi_app_android.ui.function.ContactsActivity; |
| | | import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivity; |
| | | import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivity; |
| | | import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; |
| | | import com.application.zhangshi_app_android.ui.function.HealthCareActivity; |
| | | import com.application.zhangshi_app_android.ui.function.HomeDevicesActivity; |
| | | import com.application.zhangshi_app_android.ui.function.HonorCollectionActivity; |
| | | import com.application.zhangshi_app_android.ui.function.HundredWishActivity; |
| | | import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesActivity; |
| | | import com.application.zhangshi_app_android.ui.function.LittleDoctorActivity; |
| | | import com.application.zhangshi_app_android.ui.function.MarriageActivity; |
| | | import com.application.zhangshi_app_android.ui.function.PersonalNotepadActivity; |
| | | import com.application.zhangshi_app_android.ui.function.PetDetailActivity; |
| | | import com.application.zhangshi_app_android.ui.function.PrivacyActivity; |
| | | import com.application.zhangshi_app_android.ui.function.PropertyActivity; |
| | | import com.application.zhangshi_app_android.ui.function.TourismActivity; |
| | | import com.application.zhangshi_app_android.ui.home.TreeFragment; |
| | | import com.application.zhangshi_app_android.ui.main.MainActivity; |
| | | import com.hjq.bar.TitleBar; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | import io.reactivex.functions.Consumer; |
| | | |
| | | /** |
| | | * @author Ljj |
| | |
| | | mDrawerLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); |
| | | VDB mBinding = DataBindingUtil.inflate(inflater, getLayoutId(), mDrawerLayout, true); |
| | | if (getDrawerLayoutId() > 0){ |
| | | getLayoutInflater().inflate(getDrawerLayoutId(), mDrawerLayout, true); |
| | | inflater.inflate(getDrawerLayoutId(), mDrawerLayout, true); |
| | | }else { |
| | | throw new IllegalArgumentException("没给侧拉栏布局就不要开启侧拉栏啦"); |
| | | } |
| | |
| | | return super.initViewBinding(inflater, container); |
| | | } |
| | | |
| | | @Nullable |
| | | @Override |
| | | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { |
| | | isLoaded = false; |
| | | if (getLayoutId() > 0){ |
| | | binding = initViewBinding(inflater, container); |
| | | if (isDrawerLayoutEnabled()) { |
| | | //如果开启了侧拉栏,就把布局放到侧拉栏里面 |
| | | mRootView = mDrawerLayout; |
| | | }else { |
| | | mRootView = binding.getRoot(); |
| | | } |
| | | return mRootView; |
| | | } |
| | | return null; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 是否开启侧拉栏 |
| | |
| | | */ |
| | | protected int getDrawerLayoutId(){ |
| | | return R.layout.layout_drawer; |
| | | }; |
| | | } |
| | | |
| | | @Override |
| | | public void onCreate(@Nullable Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | | |
| | | public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { |
| | | super.onViewCreated(view, savedInstanceState); |
| | | if (mDrawerLayout != null) { |
| | | classMap.put(null,(LinearLayout) findViewById(R.id.dl_home_root_net)); |
| | | classMap.put(TreeFragment.class,(LinearLayout) findViewById(R.id.dl_home_root_net)); |
| | | classMap.put(FamilyMemorabiliaActivity.class,(LinearLayout) findViewById(R.id.dl_family_memorabilia)); |
| | | classMap.put(FamilyAssetsActivity.class,(LinearLayout) findViewById(R.id.dl_family_assets)); |
| | | classMap.put(HomeDevicesActivity.class,(LinearLayout) findViewById(R.id.dl_home_devices)); |
| | |
| | | classMap.put(ContactsActivity.class,(LinearLayout) findViewById(R.id.dl_contacts)); |
| | | classMap.put(PetDetailActivity.class,(LinearLayout) findViewById(R.id.dl_pet)); |
| | | classMap.put(IncomeAndExpensesActivity.class,(LinearLayout) findViewById(R.id.dl_income_and_expenses)); |
| | | classMap.put(GrowthExperienceActivity.class,(LinearLayout) findViewById(R.id.dl_growing_up)); |
| | | classMap.put(PersonalNotepadActivity.class,(LinearLayout) findViewById(R.id.dl_growing_up)); |
| | | classMap.put(MarriageActivity.class,(LinearLayout) findViewById(R.id.dl_marriage)); |
| | | classMap.put(PropertyActivity.class,(LinearLayout) findViewById(R.id.dl_property)); |
| | | classMap.put(HundredWishActivity.class,(LinearLayout) findViewById(R.id.dl_hundred_wish)); |
| | | classMap.put(HealthCareActivity.class,(LinearLayout) findViewById(R.id.dl_health_care)); |
| | | classMap.put(AnnualHealthStatusActivity.class,(LinearLayout) findViewById(R.id.dl_health_care)); |
| | | classMap.put(CertificateOfHonorActivity.class,(LinearLayout) findViewById(R.id.dl_certificate_of_honor)); |
| | | classMap.put(PrivacyActivity.class,(LinearLayout) findViewById(R.id.dl_privacy)); |
| | | classMap.put(TourismActivity.class,(LinearLayout) findViewById(R.id.dl_tourism)); |
| | |
| | | if (linearLayout != null) { |
| | | linearLayout.setOnClickListener(v -> { |
| | | if (set.getKey() != null){ |
| | | AppManager.getAppManager().startActivity(set.getKey()); |
| | | if (set.getKey() == TreeFragment.class) { |
| | | MainActivity.start(getContext(), TreeFragment.class); |
| | | }else{ |
| | | AppManager.getAppManager().startActivity(set.getKey()); |
| | | } |
| | | mDrawerLayout.close(); |
| | | } |
| | | }); |
| | | } else { |
| | |
| | | } |
| | | mDrawerLayout.setScrimColor(getResources().getColor(R.color.color_shadow)); |
| | | } |
| | | |
| | | setNameAndAvatar(UserManager.getInstance().getUserName(),UserManager.getInstance().getUserAvatar()); |
| | | RxBus.getInstance().toObservable(this, MessageEvent.class).subscribe(new Consumer<MessageEvent>() { |
| | | @Override |
| | | public void accept(MessageEvent event) throws Exception { |
| | | if(event.getMessageEventCode() == MessageEvent.EVENT_UPDATE_USER_INFO){ |
| | | setNameAndAvatar(UserManager.getInstance().getUserName(),UserManager.getInstance().getUserAvatar()); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | private void setSelectItem(LinearLayout linearLayout) { |
| | | if (linearLayout == null){ |
| | |
| | | } |
| | | TextView textView = (TextView) linearLayout.getChildAt(1); |
| | | ImageView imageView = (ImageView) linearLayout.getChildAt(2); |
| | | textView.setTextColor(Color.parseColor("#FFF6739F")); |
| | | imageView.setBackgroundResource(R.drawable.ic_vector_pink); |
| | | TypedValue textColor = new TypedValue(); |
| | | getContext().getTheme().resolveAttribute(R.attr.drawerTextColor, textColor, true); |
| | | textView.setTextColor(textColor.data); |
| | | TypedValue icon = new TypedValue(); |
| | | getContext().getTheme().resolveAttribute(R.attr.drawerSelectIcon, icon, true); |
| | | imageView.setBackgroundResource(icon.resourceId); |
| | | } |
| | | |
| | | |
| | | public void setNameAndAvatar(String name,String avatar){ |
| | | if (mDrawerLayout != null){ |
| | | if (avatar.contains("profile/upload")) {//如果是上传到服务器的图片 |
| | | //只取profile/upload以后的部分 |
| | | avatar = avatar.substring(avatar.indexOf("profile/upload")); |
| | | avatar = BaseConfig.BASE_URL_DOMAIN + "/" + avatar; |
| | | } |
| | | GlideUtil.loadImage(avatar, findViewById(R.id.dl_home_user_avatar)); |
| | | TextView userNameTv = findViewById(R.id.dl_home_user_name); |
| | | userNameTv.setText(name); |
| | | } |
| | | } |
| | | /** |
| | | * 获取DrawerLayout |
| | | */ |
| | |
| | | mDrawerLayout.open(); |
| | | } |
| | | |
| | | |
| | | |
| | | public PopupWindow initPopUpWindow(View view){ |
| | | PopupWindow popupWindow = new PopupWindow(getSelfActivity()); |
| | | // 设置布局文件 |