Android虚拟导航键的显示隐藏实例

代码如下:

package test.lb.com.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity implements View.OnClickListener{
 boolean isnight = false;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Button nightbutton = (Button) findViewById(R.id.nightbutton);
  Button hidebutton = (Button) findViewById(R.id.hidenav);
  Button fullbutton = (Button) findViewById(R.id.full);
  Button fullonly = (Button) findViewById(R.id.fullonly);
  nightbutton.setOnClickListener(this);
  hidebutton.setOnClickListener(this);
  fullbutton.setOnClickListener(this);
  fullonly.setOnClickListener(this);
 }
 @Override
 public void onClick(View v) {
  switch (v.getId()){
   case R.id.nightbutton:
    if (isnight){
     v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
    }else{
     //夜间模式,系统控件颜色会变暗
     v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
    }
    isnight = !isnight;
    break;
   case R.id.hidenav:
    //隐藏虚拟按键,点击又会重新出现
    v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    break;
   case R.id.full:
    //在隐藏显示系统控件的过程中不会来移动我们的控件
    v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE|
      //隐藏系统状态栏,如果设置了Window.FEATURE_ACTION_BAR_OVERLY同时隐藏Actionbar
      View.SYSTEM_UI_FLAG_FULLSCREEN|
      //这个会隐藏屏幕上的所有系统控件
      View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    break;
   case R.id.fullonly:
    v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
  }
 }
}

关键代码部分其实已经在上方了,现在来说说几个FLAG:

1.View.SYSTEM_UI_FLAG_LOW_PROFILE 这个Flag设置之后你会发现整个屏幕中的系统控件部分的背景包括控件本身的会变暗或者消失,比如状态栏中的某些图标,但这个只是系统状态栏、虚拟按键等进入夜间模式,app内部的控件并不会进入夜间模式,这个以后有时间再研究怎么在应用内部实现夜间模式。

2.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION,设置这个Flag可以是虚拟按键进行动态的显示和隐藏,因为虚拟按键会占用屏幕控件,所以虚拟按键的显示和隐藏可能会影响到你的控件在当前界面中的位置,这个时候你可能需要设置另外一个FLAG,这个FLAG就是View.SYSTEM_UI_FLAG_LAYOUT_STABLE,设置这个FLAG会是你的控件不在受虚拟按键显示或隐藏的影响。

3.View.SYSTEM_UI_FLAG_FULLSCREEN,这个Flag应该是大家比较常用的一个Flag,设置之后会屏蔽掉状态栏等控件使你的界面全屏显示(不会隐藏虚拟按键),但是如果有actionbar和activitytitle等相关内容存在,这些依旧还会显示,如果设置了Window.FEATURE_ACTION_BAR_OVERLY,在隐藏状态栏的同时,则会将actionbar也一起隐藏,如果要隐藏title则需要设置Window.FEATURE_NO_TITLE

如何在带有实体按键的情况下调出虚拟按键

1.通过修改build.prop调出虚拟按键,其路径在system/下,在其中找到build.prop打开可以看到qemu.hw.mainkeys=1 或者qemu.hw.mainkeys= 0,当qemu.hw.mainkeys=1时实体键盘起效,qemu.hw.mainkeys=0时,显示虚拟键盘,此时点击实体键盘不起作用。

以上这篇Android虚拟导航键的显示隐藏实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android开发之判断有无虚拟按键(导航栏)的实例
  • Android 中隐藏虚拟按键的方法实例代码
  • Android 动态显示和隐藏状态栏详解及实例
(0)

相关推荐

  • Android 中隐藏虚拟按键的方法实例代码

    下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getWindow().getDec

  • Android开发之判断有无虚拟按键(导航栏)的实例

    判断有无虚拟按键(导航栏) 现在很大一部分手机没有虚拟按键,一部分有.我们在做适配的时候可能会用到这方面的知识. 例如:屏幕填充整个屏幕的时候,没办法只能连导航栏一起填充了,但是这个不是我们想要的,我们要给布局试着paddingbottom,这个时候我们就要判断有么有导航栏,导航栏高度是多少了. /** * 获取是否存在NavigationBar * @param context * @return */ public boolean checkDeviceHasNavigationBar(Co

  • Android 动态显示和隐藏状态栏详解及实例

    Android 动态显示和隐藏状态栏 View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性. setSystemUiVisibility(int visibility)方法可传入的实参为: 1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况). 2. View.INVISIBLE:隐藏状态栏,同时A

  • Android虚拟导航键的显示隐藏实例

    代码如下: package test.lb.com.myapplication; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity implements View.OnClickListener{ boolean isnight = fals

  • Android 状态栏虚拟导航键透明效果的实现方法

    状态栏和虚拟导航键 4.4上半透明,5.0以上可以全透明 先上效果 4.4 半透明效果 5.0及以上 全透明效果 上代码 MainActivity代码 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 supportReque

  • Android中实现EditText密码显示隐藏的方法

    在Google发布了support:design:23+以后我们发现有这么一个东西TextInputLayout,先看下效果图: <android.support.design.widget.TextInputLayout android:id="@+id/pwdLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:passw

  • 在vue中动态添加class类进行显示隐藏实例

    如下所示: <div class="status_button"> <el-button type="success" @click="checkSite" >查岗</el-button> <el-button type="danger">视频</el-button> </div> <!-- 查岗部分显示影藏 --> <div class

  • Android虚拟导航栏遮挡底部的输入框的解决方法

    1.场景还原 最近忙着app的适配,在这个过程问题中,各种机型的奇葩问题都出来了,适配真尼玛痛苦!今天就oppo机型虚拟导航栏遮挡底部的输入框的问题作个记录. 2.解决方法 ① 在该Activity的根layout配置如下属性: android:fitsSystemWindows="true" android:clipToPadding="false" 第一个属性: 如果为true,将调整系统窗口布局以适应你自定义的布局. 第二个属性: 控件的绘制区域是否在padd

  • 用jQuery实现一些导航条切换,显示隐藏的实例代码

    代码如下: 复制代码 代码如下: <!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>导航条在项目中的应用</title>    <script language="javascript" type="text/javascript" src="Jscript/jquery-1.4.2

  • Android开发EditText实现密码显示隐藏

    最近在做一个登录.注册页面,里面需要显示或隐藏密码,故做了一个简单的显示和隐藏功能. 关键类TextView.setTransformationMethod(TransformationMethod method),其中TransformationMethod 有两个子类: HideReturnsTransformationMethod 隐藏回车 PasswordTransformationMethod 密码类型 关键代码: @OnClick(R.id.iv_psw_eye)     void

  • Android 4.4.2 横屏应用隐藏状态栏和底部虚拟键的方法

    //去title requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏状态栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏拟按键 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_

  • Android编程之软键盘的隐藏显示实例详解

    本文实例分析了Android编程之软键盘的隐藏显示方法.分享给大家供大家参考,具体如下: Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入. 那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少?我们能否在应用程序中进行自定义的控制?这些是本文要讨论的重点. 一.软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将

  • Android实现状态栏和虚拟按键背景颜色的变化实例代码详解

    今天介绍一下,我在项目开发过程中,实现状态栏和虚拟按键背景颜色变化的方法,实现方式是,通过隐藏系统的状态栏和虚拟按键的背景,实现图片和背景显示到状态栏和虚拟按键下方.下面来看实现代码: 实现状态栏背景的设置 状态栏工具类 public class StatusBarUtil { /** * 设置沉浸式状态栏 * * @param activity 需要设置的activity */ public static void setTransparent(Activity activity) { //A

随机推荐