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中,不能全屏显示的问题。在网上找了很多资料,都没有很好的解决。          后来就问了一下公司开发的前辈,找到了一种方式可以完美解决。就是...
  • Langxingtianxi
  • Langxingtianxi
  • 2015年11月26日 18:31
  • 2594

android 替换fragment不能全屏问题.

mFragmentManager = this.getSupportFragmentManager() 替换fragment. 不能全屏显示.  网上搜罗的各种方法都不奏效.  最终在stacko...
  • wqhjfree
  • wqhjfree
  • 2015年06月03日 11:25
  • 4890

DialogFragment 透明全屏设置终极实用办法

今天在项目中需要用到DialogFragment,并且需要全屏透明;苦逼的是怎么弄两边都会有一点间距;这是因为DialogFragment 弹出框默认是在屏幕的中央,左右还有留白,那么怎么样才能将这左...
  • dakun012
  • dakun012
  • 2016年06月22日 19:30
  • 5251

解决fragmentTransaction.replace不能全屏

解决fragmentTransaction.replace替换后的内容不能全屏
  • leehu1987
  • leehu1987
  • 2014年10月20日 14:14
  • 930

动态替换Fragment全屏的问题

前言      动态替换Fragment时遇到的一个**问题,记录一下。 声明   欢迎转载,但请保留文章原始出处:)      博客园:http://www.cnb...
  • jdsjlzx
  • jdsjlzx
  • 2012年09月02日 13:04
  • 3316

DialogFragment全屏显示很简单

再过半小时就周末了,偏偏就在这时候测试送来了一份大礼:直播间Nexus 6艺人面板UI显示不正确,擦擦擦,心中一万个草泥马狂奔,没办法还要过周末呢,赶紧吧。                      ...
  • u012810020
  • u012810020
  • 2016年07月22日 18:30
  • 2045

安卓fragmentTransaction.replace不能全屏问题

操蛋的问题,看下下面代码 package com.example.fragmenttest; import android.app.FragmentManager; import android.a...
  • u012170463
  • u012170463
  • 2014年12月11日 16:31
  • 1038

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

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

(沉浸式)在Activity中或Fragment中任意改变状态栏的颜色

  • 2017年01月20日 10:27
  • 9.12MB
  • 下载

Android里如何让DialogFragment的宽度顶满屏幕?

转自:http://www.oschina.net/question/1993518_174346?sort=time 项目中使用到了dialogfragment,但要求弹出的对话框需要宽度占满屏幕...
  • omayyouhappy
  • omayyouhappy
  • 2016年03月29日 11:27
  • 1274
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android fragment 中控制某一个界面全屏与否
举报原因:
原因补充:

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