1. 程式人生 > >關於NavigationView在使用中遇到的一個小問題

關於NavigationView在使用中遇到的一個小問題

當未登入情況下是這樣的:


登入成功後是這樣的:


退出app之後重新開啟是這樣的:


真是日了狗了。我啥都沒動怎麼重新進入還不一樣呢?

附一段關於NavigationView的程式碼

View headerView = mNavigationView.getHeaderView(0);
        Menu menu = mNavigationView.getMenu();
        mLoginMenuItem = menu.getItem(0);
        mUserIconIV = (ImageView) headerView.findViewById(R.id.iv_userIcon);

設定頭像和文字的程式碼:
  if (App.isLogIn()) {
            mLoginMenuItem.setTitle("退出登入");
            Glide.with(this).load(IMG_URl).into(mUserIconIV);
            mUsernameTV.setText(AVUser.getCurrentUser().getUsername());
        }
木有任何問題。

debug吧!在進入app後發現頭像(即mUserIconIV )的寬高是48(ps:手機為紅米3s,dpi為xh,預設頭像使用的是@android:drawable/sym_def_app_icon

),所以登入成功之後給頭像ImageView設定src屬性的時候仍然是48*48,並不會改變它的寬高。

當退出app後重新進入app,使用的是登入成功之後的頭像(即http://aigestudio.com/wp-content/uploads/2016/08/logo.png),寬高為496*496(並不是圖片的高度,是Imageview的高度),NavigationView的高度是有限的,ImageView的高度很大,所以不會顯示底下的TextView了。
so,解決辦法是寫死ImageView的寬高。