美文网首页
Android遇到的一些问题汇总

Android遇到的一些问题汇总

作者: WelliJhon | 来源:发表于2018-01-26 09:57 被阅读0次

    一.资源文件报空指针,转换异常,但是明明写的都是正确的,那么这个时候,需要考虑下下面这种情况?

    1.当我们的Android程序有多个module的情况下,如果在有模块引入别的模块的情况,主模块的资源文件会覆盖子模块所有的资源,导致子模块获取的资源是主模块的资源。
    2.这里的资源文件(layout,string,color,style等)但是不包含id,如果不同模块的id相同的话,这个是没有问题,除了包含id的layout也相同,这样就会用主模块的id了。

    二.我只是启动一个应用程序,为什么Application的onCreate执行了多次?

    答:在启动应用程序的时候,linux中调用fork创建的子进程,将共享父进程的代码空间,复制父进程数据空间,此时子进程会获得父进程的所有变量的一份拷贝。如果这个时候第三方框架会启动新的进程,那么也会执行接下来的Application的代码,所以会执行多次了。

    三.View.setVIsibility(Gone)的时候,不起作用,或者出现gone的那一块控件为黑色?

    答:修改布局的设置:

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <LinearLayout
                android:id="@+id/vis_or_gone"//通过这个id来控制Visible还是Gone
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:visibility="gone">
    
                //这里放置你要Visible和Gone的布局
            </LinearLayout>
        </RelativeLayout>
    

    四.华为手机和三星手机,popupwindow中包含EditText的时候,当EditText获取焦点,整个popupwindow的背景都变透明?

    答:这个需要我们在popupwindow的contentView的背景设置为想要的颜色,而且contentView中包含的子控件,如果是树顶的控件(就是最上层显示的控件)也需要设置我们想要的背景色,这样popwindow就不会变成透明了。

    五.Tablayout + ViewPager + fragment 切换时生命周期不调用?

    答:我们在写自己的fragmentAdapter的时候,将tag和position绑定起来,比如下面的

    public class BaseFragmentAdapter extends TabFragmentAdapter {
        private FragmentManager mFragmentManager;
        private SparseArray<String> mFragmentTags;
    
        public BaseFragmentAdapter(@NonNull FragmentManager fm, @NonNull List<String> titles, @NonNull List<Fragment> fragments) {
            super(fm, titles, fragments);
            mFragmentManager = fm;
            mFragmentTags = new SparseArray<>();
        }
    
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            Object object = super.instantiateItem(container, position);
            if (object instanceof Fragment) {
                Fragment fragment = (Fragment) object;
                String tag = fragment.getTag();
                mFragmentTags.append(position, tag);
            }
            return object;
        }
    
        public Fragment getFragment(int position){
            String tag = mFragmentTags.get(position);
            if(StringUtil.isStringEmpty(tag)){
                return null;
            }
            return mFragmentManager.findFragmentByTag(tag);
        }
    
    }
    

    然后在vp切换的回调方法中调用:

     mViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    
                }
    
                @Override
                public void onPageSelected(int position) {
                    Fragment currentFragment = mTabFragmentAdapter.getFragment(position);
                    if ((0 == position || position == mTabFragmentAdapter.getCount() - 1) && null != currentFragment) {
                        currentFragment.onResume();
                    }
                }
    
                @Override
                public void onPageScrollStateChanged(int state) {
    
                }
            });
    

    上面的是调用onResume的什么周期,其他你们也是可以处理的。

    六.Android中对某个View频繁设置Visible和Gone的时候,有的时候会出现Gone却Gone不掉的情况?

    答:这种情况,多半是因为View还没有计算好自己的宽高,所以Gone不掉,我们一般可以在如下方式:

        YouView.post(new Runnable() {
                @Override
                public void run() {
                    rlOptionByEmployee.setVisibility(View.GONE);
                    }
                });
    

    或者是在我们设置View的状态,gone之后,再增加如下的代码:

        YouView.requestLayout();
        YouView.invalide();
    

    七.Android的Popupwindow在7.0以上的设备,用showAsDropDown的时候,当我们设置match_parent的时候,会全屏铺满?

    答:可以考虑下专门为支持7.0以上的设备显示的popupwindow

    八.ScollView或者RecyclerView等自动滚动的处理?

    答:ScrollVIew自动滚动的解决方案

    github地址如果你觉得有用,欢迎star,如果你们有补充的,欢迎fork提交,以后还会持续更新的

    相关文章

      网友评论

          本文标题:Android遇到的一些问题汇总

          本文链接:https://www.haomeiwen.com/subject/rhsiaxtx.html