Android fragment 获取id,findViewById为空

Android fragment 获取id,findViewById为空项目中需要保持标题栏,通过点击标题栏左侧的按钮,弹出下拉菜单,切换右侧的界面,所以就想到使用fragment这个类,可以很好的切换activity,不过在使用的时候还是出现了很多问题:   1.publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,

大家好,欢迎来到IT知识分享网。Android

     项目中需要保持标题栏,通过点击标题栏左侧的按钮,弹出下拉菜单,切换右侧的界面,所以就想到使用fragment这个类,可以很好的切换activity,不过在使用的时候还是出现了很多问题:

      1

.public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View vi = inflater.inflate(R.layout.activity_price, container,false);
}
    <span style="color:#ff0000;background-color: rgb(255, 255, 102);">上述的代码是否有错,在创建fragment的时候,这样的初始化代码我忘了写return返回值,导致程序报错,所以前往别忘了添加一个return vi;</span>
</pre><pre name="code" class="java">   2.在使用findViewById的时候,获取某个ID,在fragment里面获取和activity有点不一样,稍不注意,就有可能获取到的是空值null:
      以下是错误的用法:
AlloneHorizontalScrollView

tableHeaderView = (AlloneHorizontalScrollView)
getView.findViewById(R.id.
HorizontalScrollView_1);


     B。
AlloneHorizontalScrollView

tableHeaderView = (AlloneHorizontalScrollView) getActivity.findViewById(R.id.HorizontalScrollView_1);
这样的代码获取的值经测试都是为空的,正确的方法是,使用上述生成vi:


 View vi = inflater.inflate(R.layout.activity_price, container,false);

        // 加载字体
        loadFonts();

        tableHeaderView = (AlloneHorizontalScrollView)findViewById(R.id.HorizontalScrollView_1);
        tableDataView = (AlloneHorizontalScrollView)findViewById(R.id.HorizontalScrollView_2);
        tableHeaderView.setScrollView(tableDataView);




    希望对使用fragment的同学有一点帮助。
--------------------分割线,更新日期===========================
1.当我在fragment操作界面的时候,遇到这样的需求,当手机横屏时候,需要将activity布局上的标题隐藏,以便让fragment界面能够全屏,所以需要在fragment代码中拿到该标题的id,进行隐藏,方法如下:
    
LinearLayout   user_status_bar = (LinearLayout) getActivity()

.findViewById(R.id.user_status_bar);
user_status_bar.setVisibility(View.GONE);

    其实就是通过getActivity()方法拿到父类的布局,因为父类activity已经初始化完成,在他的生命周期内,是可以对activity的控件进行隐藏的,成功解决。
2.全屏设置的代码如下:
      getActivity().getWindow().setFlags(
					WindowManager.LayoutParams.FLAG_FULLSCREEN,
					WindowManager.LayoutParams.FLAG_FULLSCREEN);

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21409.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信