Android fragment 中控制某一个界面全屏与否

原创 2015年11月20日 14:50:12


       项目中,只允许一个界面在横屏的时候,显示是全屏的,竖屏切换回来的时候又需要显示状态栏,所以需要监听横竖屏的状态,还要修改状态栏的隐藏与显示,如下代码:

/**
	 * 添加横竖屏监听,隐藏图形的菜单控件,2015年11月12日10:15:00:qiulinhe
	 */
	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);

		if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
			// // 设置全屏
			WindowManager.LayoutParams lp = getActivity().getWindow()
					.getAttributes();
			lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
			getActivity().getWindow().setAttributes(lp);
			getActivity().getWindow().addFlags(
					WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

			pricemenu.setVisibility(View.VISIBLE);
			chart_btn.setVisibility(View.GONE);
			user_status_bar.setVisibility(View.GONE);

			// chart_btn.setVisibility(View.VISIBLE);
			// chatrbtnlayout.setVisibility(View.VISIBLE);
		} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
			WindowManager.LayoutParams attr = getActivity().getWindow()
					.getAttributes();
			attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
			getActivity().getWindow().setAttributes(attr);
			getActivity().getWindow().clearFlags(
					WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

			pricemenu.setVisibility(View.VISIBLE);
			user_status_bar.setVisibility(View.VISIBLE);
			chart_btn.setVisibility(View.VISIBLE);
			pricemenu.setVisibility(View.GONE);

		}
	}


      布局中,采用的线性权重布局,如下示例:

    

   <LinearLayout
            android:id="@+id/chart_webviewlayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"
            android:orientation="vertical"
            >

            <WebView
                android:id="@+id/chart_webview"
                android:layout_width="match_parent"
                android:layout_height="300dp"
                android:layout_weight="4"
                android:visibility="gone" />

            <LinearLayout
                android:id="@+id/pricemenu"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@color/black"
                android:orientation="horizontal"
                android:paddingLeft="20dp"
                android:paddingRight="20dp"
                android:visibility="gone" >

                <TextView
                    android:id="@+id/buttonceshi"
                    android:layout_width="65dp"
                    android:layout_height="45dp"
                    android:layout_weight="1"
                    android:background="@drawable/amenu" /><pre name="code" class="html"></LinearLayout


    这里有一个问题是让webview占据横屏的全屏时,我设置了300dp,依旧占满了屏幕

       记录一下,以便日后查找

===========================分割线,2015年11月23日09:22:56=================================

上述方式设置的时候会出现问题,后来就修改成如下代码,就可以单独的设置某个界面是否显示状态栏,如下:

	/**
	 * 添加横竖屏监听,隐藏图形的菜单控件
	 */
	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);

		if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
			// // 设置全屏
			// // 设置全屏
			getActivity().getWindow().setFlags(
					WindowManager.LayoutParams.FLAG_FULLSCREEN,
					WindowManager.LayoutParams.FLAG_FULLSCREEN);

			
		} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {

			WindowManager.LayoutParams attrs = getActivity().getWindow()
					.getAttributes();
			attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
			getActivity().getWindow().setAttributes(attrs);

		}
	}



版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/nihaoqiulinhe 举报

相关文章推荐

activity中fragment不能全屏的问题

今天开发的时候遇到fragment添加到activity中,不能全屏显示的问题。在网上找了很多资料,都没有很好的解决。          后来就问了一下公司开发的前辈,找到了一种方式可以完美解决。就是...

android 替换fragment不能全屏问题.

mFragmentManager = this.getSupportFragmentManager() 替换fragment. 不能全屏显示.  网上搜罗的各种方法都不奏效.  最终在stacko...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

acvitity和fragment中都可以单独设置的沉浸式状态栏的自定义实现方式(包括白底黑字状态栏)

第一步: 添加三方依赖库(此依赖库主要用于实现项目中所有页面统一颜色或者背景图片的沉浸式状态栏) compile 'com.readystatesoftware.systembartint:s...

一个Activity中多个Fragment实现沉浸式状态栏

项目中遇到一个问题:一个Activity有多个Fragment,每个Fragment的沉浸式状态栏不一样,有的是红色,有的是黑色,有的是一张图片(图片的一部分在状态栏中显示),并且要要兼顾虚拟按键(常...

第一代码第二版(郭霖著)笔记之第四章(探究碎片)

本篇文章涵盖“碎片是什么”“在碎片中模拟返回栈”“碎片的使用方式”“碎片和活动之间的通信”“碎片与碎片之间的通信原理”“碎片的状态”“碎片的回调”“碎片的完整生命周期”“体验碎片的生命周期”“动态加载...

实现微信布局的四种方式(四)

第四种:使用第三方库ViewPagerIndicator指示器。将ViewPager与FragmentPagerAdapter相结合来实现。 首先看一下今天要实现的效果 可能有些人不会使用...

一个Activity中多个Fragment实现沉浸式状态栏

项目中遇到一个问题:一个Activity有多个Fragment,每个Fragment的沉浸式状态栏不一样,有的是红色,有的是黑色,有的是一张图片(图片的一部分在状态栏中显示),并且要要兼顾虚拟按键(常...
  • impure
  • impure
  • 2017-01-01 10:46
  • 4848

一个activity中有多个fragment的透明状态栏处理

Android 透明状态栏,相信大家都可以找到方法这里再啰嗦一下: /** * 修改状态栏为全透明 * * @param activity */ ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)