导航:首页 > 操作系统 > android左侧导航栏

android左侧导航栏

发布时间:2023-03-02 01:10:28

① 如何去掉android系统导航栏

  1. 随意设置自定义对话框的位置2.设置对话框的背景为透明(这样使得自定义的图标完全起作用)

  2. 弹出对话框时不会同时弹出导航栏。

  3. 去除对话框的标题栏(如果不去除,标题栏可能显示为一条横线)

  4. java代码部分:

WindowdialogWindow=dialog.getWindow();
WindowManager.LayoutParamslp=dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER);
lp.x=0;//220;
lp.y=0;//130;
lp.width=422;
lp.height=167;
lp.type=WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
lp.flags=WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
dialogWindow.setAttributes(lp);

XML代码部分(用于设置对话框的style):

<stylename="GeneralDialog"parent="android:style/Theme.Holo.Light.Dialog">
<itemname="android:windowBackground">@android:color/transparent</item>
<itemname="android:windowNoTitle">true</item>
</style>

② Android 显示、隐藏状态栏和导航栏

Android 显示、隐藏状态栏和导航栏
控制状态栏显示,Activity的主题中配置全屏属性

控制状态栏显示,在setContentView之前设置全屏的flag

控制状态栏显示,在任何位置通过添加和移除全屏的flag

控制状态栏和导航栏显示,setSystemUiVisibility

// 全屏展示

// 非全屏显示,显示状态栏和导航栏

③ Android 沉浸式/透明式状态栏、导航栏

Android 从4.4开始引进透明状态栏和导航栏的概念,并且在5.0进行了改进,将透明变成了半透明的效果。虽然此特性最早出现在ios,但不否认效果还是很赞的。
至于4.4以下的手机,就不要考虑此特性了,好在4.4以下的手机份额已经非常小了。

我们先来看一下透明状态栏的实现,两种常见效果图如下:

虚拟导航栏并不是所有的手机都有,华为的手机多比较常见,就是上图屏幕底部按钮那块区域。设置导航栏和状态栏类似:

这是官方的解释,大致意思就是我们在布局的最外层设置 android:fitsSystemWindows="true",会在屏幕最上方预留出状态栏高度的padding。

由于fitsSystemWindows属性本质上是给当前控件设置了一个padding,所以我们设置到根布局的话,会导致状态栏是透明的,并且和窗口背景一样。

但是多数情况,我们并不在根布局设置这个属性,我们想要的无外乎是让内容沉浸在状态栏之中。所以我们经常设置在最上端的图片背景、Banner之类的,如果是Toolbar的,我们可以使用一层LinearLayout包裹,并把这个属性设置给LinearLayout,这样就可以避免Toolbar的内容下沉了。如:

上述方法可以解决普通页面的透明式状态栏需求,如有复杂需求可以参考下面这些:
Android 系统状态栏沉浸式/透明化完整解决方案
Android 沉浸式状态栏的实现
Android沉浸式状态栏(透明状态栏)最佳实现
还有开源库推荐: ImmersionBar

④ android 怎么实现左侧推出导航菜单

Android左侧推出导航菜单可以让Activity继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计。弹出效果主要使用了translate和alpha样式实现。具体的做法是下列代码:

第一步:设计弹出窗口xml:

Xml代码
<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
>

<LinearLayout
android:id="@+id/pop_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:background="@drawable/btn_style_alert_dialog_background"
>


<Button
android:id="@+id/btn_take_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="20dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="拍照"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>

<Button
android:id="@+id/btn_pick_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="从相册选择"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>

<Button
android:id="@+id/btn_cancel"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="15dip"
android:layout_marginBottom="15dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="取消"
android:background="@drawable/btn_style_alert_dialog_cancel"
android:textColor="#ffffff"
android:textStyle="bold"

/>
</LinearLayout>
</RelativeLayout>
第二步:创建SelectPicPopupWindow类继承PopupWindow:

Java代码
importandroid.app.Activity;
importandroid.content.Context;
importandroid.graphics.drawable.ColorDrawable;
importandroid.view.LayoutInflater;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.view.ViewGroup.LayoutParams;
importandroid.widget.Button;
importandroid.widget.PopupWindow;

{


privateButtonbtn_take_photo,btn_pick_photo,btn_cancel;
privateViewmMenuView;

publicSelectPicPopupWindow(Activitycontext,OnClickListeneritemsOnClick){
super(context);
LayoutInflaterinflater=(LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMenuView=inflater.inflate(R.layout.alert_dialog,null);
btn_take_photo=(Button)mMenuView.findViewById(R.id.btn_take_photo);
btn_pick_photo=(Button)mMenuView.findViewById(R.id.btn_pick_photo);
btn_cancel=(Button)mMenuView.findViewById(R.id.btn_cancel);
//取消按钮
btn_cancel.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){
//销毁弹出框
dismiss();
}
});
//设置按钮监听
btn_pick_photo.setOnClickListener(itemsOnClick);
btn_take_photo.setOnClickListener(itemsOnClick);
//设置SelectPicPopupWindow的View
this.setContentView(mMenuView);
//设置SelectPicPopupWindow弹出窗体的宽
this.setWidth(LayoutParams.FILL_PARENT);
//设置SelectPicPopupWindow弹出窗体的高
this.setHeight(LayoutParams.WRAP_CONTENT);
//设置SelectPicPopupWindow弹出窗体可点击
this.setFocusable(true);
//设置SelectPicPopupWindow弹出窗体动画效果
this.setAnimationStyle(R.style.AnimBottom);
//实例化一个ColorDrawable颜色为半透明
ColorDrawabledw=newColorDrawable(0xb0000000);
//设置SelectPicPopupWindow弹出窗体的背景
this.setBackgroundDrawable(dw);
//mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
mMenuView.setOnTouchListener(newOnTouchListener(){

publicbooleanonTouch(Viewv,MotionEventevent){

intheight=mMenuView.findViewById(R.id.pop_layout).getTop();
inty=(int)event.getY();
if(event.getAction()==MotionEvent.ACTION_UP){
if(y<height){
dismiss();
}
}
returntrue;
}
});

}

}

第三步:编写MainActivity类实现测试:

Java代码
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.TextView;

{

//自定义的弹出框类
;

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextViewtv=(TextView)this.findViewById(R.id.text);
//把文字控件添加监听,点击弹出自定义窗口
tv.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//实例化SelectPicPopupWindow
menuWindow=newSelectPicPopupWindow(MainActivity.this,itemsOnClick);
//显示窗口
menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main),Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0);//设置layout在PopupWindow中显示的位置
}
});
}

//为弹出窗口实现监听类
=newOnClickListener(){

publicvoidonClick(Viewv){
menuWindow.dismiss();
switch(v.getId()){
caseR.id.btn_take_photo:
break;
caseR.id.btn_pick_photo:
break;
default:
break;
}


}

};

}

上述的代码实现了从底部弹出,也可以根据PopupWindow类设置从左下部弹出。

Android的对话框有两种:PopupWindow和AlertDialog。它们的不同点在于:

AlertDialog的位置固定,而PopupWindow的位置可以随意

AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的

PopupWindow的位置按照有无偏移分,可以分为偏移和无偏移两种;按照参照物的不同,可以分为相对于某个控件(Anchor锚)和相对于父控件。具体如下

showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移

showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移

showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移

⑤ Android ViewPager + Fragment 实现导航栏(可以左右滑动)

先上图

使用HorizontalScrollView可以让超出屏幕的导航栏可以滑动,每个RadioButton代表一个导航标题,android:button="@null"去掉RadioButton的选中圆圈

选中的下划线xml文件

将RadioButton导航栏的标题装在一个list集合里面,新增标题的时候可以直接在list里添加RadioButton的id,简约了ViewPage滑动定位到相应的RadioButton和相应的Fragment,不用when每个id去判断。

增加标题时也要add对应的Fragment

继承FragmentStatePagerAdapter 。当ViewPager中的Fragment数量相对较多时继承FragmentStatePagerAdapter,少时可以继承FragmentPagerAdapter

⑥ android 4.4怎样显示导航栏

安卓 4.4 以上的版本支持隐藏导航栏,也就是那三个虚拟的按键,本篇经验就介绍如何来隐藏着三个按键。 工具/原料 安卓4.4 以上版本的手机 方法/步骤 安卓4.4以上版本,增加了虚拟的三个按键,谷歌称此三个按钮为导航栏,这三个导航栏是可以隐藏...

⑦ android studio 左右两边导航栏怎么点出来

打开AndroidStudio工具,点击“设置”按钮,如图:

左侧导航栏,选择“Editor”,如图:

右面往下拉鼠标,直到最后,找到“show quick doc……”如图:

打上对勾,选择apply ,点击OK,如图:

进入代码,将鼠标移上去,就会看到悬浮提示窗口,如图:

⑧ android 标题栏,状态栏和导航栏的区别

就我理解,标题栏是手机左上最顶上,显示中国移动,安全卫士,或者当前运行软件的地方,手机的顶部。右边显示信号,电量,网速等等是状态栏。
下拉就会出现通知栏。
至于导航栏是手机最下面的返回,HOME,主页三个键,有些是一个按钮。

阅读全文

与android左侧导航栏相关的资料

热点内容
javarefout 浏览:298
电脑桌面文件夹改名找不到文件夹 浏览:229
幕布app如何改字体 浏览:469
多层建筑面积算法 浏览:521
虚拟机加密狗驱动 浏览:704
多功能二开影视app源码教程 浏览:711
苹果显示你已经购买app项目怎么搞 浏览:719
怎么用云服务器开发 浏览:970
为什么要有dfs和bfs这两种算法 浏览:522
有了云服务器怎么赚钱 浏览:58
igmp配置命令packet 浏览:775
比较好用的加密软件在线客服 浏览:418
execute命令 浏览:304
写编程用的服务器是什么 浏览:159
语言编译属于什么软件 浏览:222
编译原理左递归右递归 浏览:184
java给字符串加引号 浏览:567
找不到服务器的dns怎么调整 浏览:872
电脑下载好软件应该怎么解压 浏览:599
安卓手机双核怎么设置 浏览:593