记录一下再fragment里面去使用imageview 控件设置背景图的问题,突然报这个错误,显示空指针。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.administrator.medx_media, PID: 4624
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
at com.example.administrator.medx_media.testDemo.Fragment_two.onCreateView(Fragment_two.java:143)
我这布局只有一个imageview控件,全屏显示
我们看一下我在 fragment 的onCreateView创建视图的生命周期方法的代码
如果不细心看或者是,没有搞明白findviewbyid的,很容易出错,因为这段代码我之前是写在
onActivityCreated的生命周期方法里面,我当时直接复制过去了,没留意到 getActivity或者View findviewbyid的区别
把getActivity 改成view就行了
换成 iv_img = view.findViewById(R.id.iv_img);
这样就没有问题了,像在fragment去findviewbyid一定要注意他的生命周期,不同地方的使用。以及想imageview 控件会拉伸变形的问题,我们可以使用 下面两个属性,去适配我们的控件大小问题。
android:adjustViewBounds="true" android:scaleType="fitXY"
下面成功运行之后的画面。
像一些常用控件的使用,我们除了要小心空指针问题,还有他们的属性使用,加载资源的时候,都要特别注意使用方法。