b2c信息网

您现在的位置是:首页 > 最近新闻 > 正文

最近新闻

android底部导航抽屉(手机底部导航栏)

hacker2022-07-01 16:28:22最近新闻98
本文目录一览:1、如何在Android中添加一个节分隔抽屉式导航2、

本文目录一览:

如何在Android中添加一个节分隔抽屉式导航

你说的效果实现可以分为两个部分:

一、拖拽部分,这部分你实现让scrollview跟着你的手移动

1、给scrollview添加onTouchListener或者自定义scrollview并重载其onTouchEvent方法。

2、根据move不停设置scrollview的坐标

你需要注意的是:event.getX()是你手指的坐标,而不是控件的坐标,很多人能够理解,但有的人写的时候会搞混。

你需要做的是:取得4个坐标——

(1)、你手指点下去的坐标,这个坐标在ACTION_DOWN中获得:primaryTouchCoord,这个坐标要一直保存,所以要在Touch事件外定义(类成员变量);

(2)、你手指当前的坐标curTouchCoord,在每次Touch事件触发的时候用event.getY()获得,即在switch外或者ACTION_MOVE中获得;

(3)、scrollview初始坐标primaryScrollViewCoord,这个坐标也在ACTION_DOWN中获得并且一直保存。

(4)、scrollview最终坐标curScrollViewCoord,在ACTION_UP中获得。

有了这四个坐标,就可以实现了。

android 判断有没有底部导航栏

很多android应用底部都有一个底部导航栏,方便用户在使用过程中随意切换。目前常用的做法有三种:一种是使用自定义tabHost,一种是使用activityGroup,一种是结合FrameLayout实现。笔者再做了多款应用后,为了节约开发周期,封装了一个抽象类,只要三步便可完成底部栏的生成及不同页面的调用。

 public class ActivitycollectiondemoActivity extends ActivityCollection {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//setBottomTabBackground(resId);// 设置底部导航背景图

@Override

protected boolean isShowWindowFeature() {

return true;//设置是否显示title;

@Override

protected ListIndicatorInfo setDrawableCollections() {

ListIndicatorInfo IndicatorInfos = new ArrayListIndicatorInfo();

IndicatorInfo indicatorInfo_1 = new IndicatorInfo(R.drawable.baby1,

R.drawable.baby1_s, R.string.baby1, 12, Color.WHITE,

new Intent(ActivitycollectiondemoActivity.this,

Activity01.class));

IndicatorInfo indicatorInfo_2 = new IndicatorInfo(R.drawable.baby2,

R.drawable.baby2_s, R.string.baby2, 12, Color.WHITE,

new Intent(ActivitycollectiondemoActivity.this,

Activity02.class));

IndicatorInfo indicatorInfo_3 = new IndicatorInfo(R.drawable.baby3,

R.drawable.baby3_s, R.string.baby3, 12, Color.WHITE,

new Intent(ActivitycollectiondemoActivity.this,

Activity03.class));

IndicatorInfo indicatorInfo_4 = new IndicatorInfo(R.drawable.baby4,

R.drawable.baby4_s, R.string.baby4, 12, Color.WHITE,

new Intent(ActivitycollectiondemoActivity.this,

Activity04.class));

IndicatorInfos.add(indicatorInfo_1);

IndicatorInfos.add(indicatorInfo_2);

IndicatorInfos.add(indicatorInfo_3);

IndicatorInfos.add(indicatorInfo_4);

return IndicatorInfos;

第一步:导入jar包;

第二步:让你的homeactivity 继承ActivityCollection类;

第三步:将你的图片资源及跳转intent放入list中,设置可选项;

雏形就形成啦!

app底部导航两个需要做么

需要。

从g+采用底部导航开始,你就应该意识到谷歌在设计规范上要开始寻求变化了。然而,这种变化不过是再次回到了几年以前。其实类似的事情在微信上也发生过,为了遵循安卓的设计规范,微信在很短暂的时间内使用了抽屉导航,当时都是一片赞美的声音,不过“好景”不长,很快微信再次回到了传统的底部导航,但是在安卓版本上,保留了具有安卓特色的action bar。微信这样做,肯定是基于用户调研的结果,原因其实很简单:就算安卓真的有设计规范,也不得不考虑用户的实际需求,微信是面向上亿人群的,当你发现因为改版导致功能使用率降低的时候,你不得不改变这种设计。

什么底部导航具有如此顽强的生命力呢?易操作:毕竟是手持设备,菜单放在底部,几乎是最易操作的。不管你手指长还是短,都非常顺手。而抽屉导航,几乎都需要两只手吧。直观:所有菜单放在第一屏,一目了然,没有隐藏功能,一下子就知道这个app是干什么的。ios以及其它手机厂商培养出来的用户习惯:这个其实是最次要的,如果一开始出现的是其它导航方式,而底部导航最后出来,我觉得底部导航最终还是会笑到最后。所以这个并不重要。

android类似下抽屉的效果怎么实现

你说的效果实现可以分为两个部分:

一、拖拽部分,这部分你实现让scrollview跟着你的手移动

1、给scrollview添加onTouchListener或者自定义scrollview并重载其onTouchEvent方法。

2、根据move不停设置scrollview的坐标

你需要注意的是:event.getX()是你手指的坐标,而不是控件的坐标,很多人能够理解,但有的人写的时候会搞混。

你需要做的是:取得4个坐标——

(1)、你手指点下去的坐标,这个坐标在ACTION_DOWN中获得:primaryTouchCoord,这个坐标要一直保存,所以要在Touch事件外定义(类成员变量);

(2)、你手指当前的坐标curTouchCoord,在每次Touch事件触发的时候用event.getY()获得,即在switch外或者ACTION_MOVE中获得;

(3)、scrollview初始坐标primaryScrollViewCoord,这个坐标也在ACTION_DOWN中获得并且一直保存。

(4)、scrollview最终坐标curScrollViewCoord,在ACTION_UP中获得。

有了这四个坐标,就可以实现了。

在ACTION_MOVE中判断最大和最小Y坐标,比如

if(scrollview.getY0){//让scrollview的坐标不超过你的最大和最小坐标

scrollview.setY(0);

}

if(scrollview.getY(int)(mScreenHeight()*0.9)){

...

}

if(scrollview.getY()0scrollview.getY(int)(mScreenHeight()*0.9)+可以滑动条件),则执行scrollView.setY(primaryScrollViewCoord+(curTouchCoord-primaryTouchCoord));

上面完成后,scrollview就会跟着你的手指移动并且不会超过指定坐标

由于是scrollview,你不得不判断什么时候scrollview有效,否则在scrollview移动的时候,scrollview的内部也会移动。

上面的回答根据你实际情况修改。

二、动画部分,你的手离开屏幕后scrollview向上/下动画

在完成第一步后,你就已经完成了大半。

以下在ACTION_UP中完成

这时,在上面提到的primaryScrollViewCoord就会使用了,根据scrollview移动的距离判断是向上/下,然后使用animation(Set)完成接下来的动作。

你这里将使用Animation animation = new TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta);

注意4个坐标的意义,第一个为起始X坐标离当前坐标的距离,这里为0,第二个坐标为目的坐标到当前的距离,正负代表不同的方向;后面两个为Y坐标;

你这里要设置animation.setFillAfter(true),使UI保存在动画后;如果要保存到动画前,则使用setFillBefore(true);

animation.setDuration(int)设置动画事件

然后scrollview.startAnimation()开始动画

动画具体使用,网上可以找到,就不多说了。

需要注意的:

1、动画结束后一定要clear,可以给动画添加监听,在onAnimationEnd()里执行scrollview.clearAnimation(),如果可以的话,同时将scrollview设置成最大或最小坐标

2、不要使用touch坐标直接设置scrollview坐标,那样可能会导致移位。

android开发时如何去掉底部的导航栏?

在一个普通类中(非继承Activity等),点击截界面上某一按钮隐藏底部导航栏(Back、Home、多任务切换),再次点击让其出现;

实现:隐藏view.setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar

| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar

| Utils.SYSTEM_UI_FLAG_IMMERSIVE);

显示view.setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

而且加了界面touch监听,在隐藏模式下,单击屏幕不让导航栏出现;

发表评论

评论列表

  • 囤梦眼趣(2022-07-02 04:13:36)回复取消回复

    ScrollViewCoord,在ACTION_UP中获得。有了这四个坐标,就可以实现了。android 判断有没有底部导航栏很多android应用底部都有一个底部导航栏,方便用户在使用过程中随意切换。目前常

  • 囤梦猫爷(2022-07-01 18:06:27)回复取消回复

    LLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar | View.SYS