当前位置:首页 » 安卓系统 » android底部actionbar

android底部actionbar

发布时间: 2023-10-23 08:47:13

㈠ Android知识串讲(1) 底部导航栏遮挡|转屏锁定|ActionBar隐藏

方法一:隐藏

Android中布局内容被底部系统导航栏遮挡

方法二:内容上移
Android手机底部NavigationBar挡住界面的解决方法

Manifest.xml 文件中设腔备置 Activity 的属性

Android布局界面隐藏顶部导航栏
Android隐藏和显示虚拟导航栏

Android 获取手机存储总大小,系统占用空间
Android 获取稿圆备屏幕宽度和高度的几种键毁方法
Android 获取电池相关信息
Android电量计重要的类及函数介绍
安卓5.0后获取所有运行的进程信息
Android获取内存(RAM)大小信息
android 几种杀进程的方式
Android开发中 获取App缓存大小以及清除缓存

Looper.getMainLooper()使用误区

Android中通过资源文件获取drawable的几种方法

Fragment向Activity传递值

注意:

㈡ Android怎么动态更改actionbar的背景颜色

Android动态更改actionbar的背景颜步骤:

在backgroud下面再写一个style,修改values-v14文件夹下的style.xml文件
[html] view plain
<resources xmlns:android="http://schemas.android.com/apk/res/android">

<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 14 theme customizations can go here. -->
<item name="android:actionBarStyle">@style/my_actionbar_style</item>
</style>

<style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#647b97</item>
<item name="android:titleTextStyle">@style/AcBar_titleStyle</item>
[html] view plain
<item name="android:backgroundStacked">#4A708B</item> <!-- 分离成tab时的tab颜色 -->
[html] view plain
<item name="android:backgroundSplit">@color/ab_backgroundSplit_color</item>
</style>
<style name="AcBar_titleStyle">

<item name="android:textColor">#FFFFFF</item>
</style>

</resources>

<item name="android:backgroundSplit">@color/ab_backgroundSplit_color</item> actionbar item
这样就分离在底部时候的颜色。

㈢ android如何去掉actionbar

当使用Android中的ActionBar控件时,如果想要隐藏上面的ActionBar,可以使用如下的代码:
getSupportActionBar().hide();//隐藏掉整个ActionBar,包括下面的Tabs
上面的代码会将整个ActionBar都隐藏掉,包括ActionBar中的Tab分页标签,如果想要保留分页标签的话,可以使用如下的代码:
ActionBar actionBar = getSupportActionBar();//高版本可以换成 ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
//会保留tab标签

另外还有一种更简单的方式来移除ActionBar,在setContent之前调用下面这句,保证没有ActionBar
requestWindowFeature(Window.FEATURE_NO_TITLE);

㈣ android怎么设置状态栏和actionbar同颜色

android 布局 layout relativelayout

除了沉浸模式外,Android 4.4还有新的API,能使应用内的状态栏和虚拟按钮透明。其他更多的Android 4.4 APIs可以看这里。

如果要使应用内的状态栏和虚拟按钮变成透明有两种方法。

一种是代码方式:

?1

2

3Window window = getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

另外一种是使用两个新的主题风格:

Theme.Holo.NoActionBar.TranslucentDecor和Theme.Holo.Light.NoActionBar.TranslucentDecor。

但是这种方式只支持Android4.4以上系统,所以为了保持兼容性,我们还是采用代码方式比较好。只需要先判断,如果是4.4以上系统才启用代码。

开启后上下系统栏都透明了。

但是如果应用本身是带有actionbar或者标题栏的话会就会变得比较尴尬,内容会在上面露出来。这个时候需要在布局文件里加入android:fitsSystemWindows="true"。

android:id="@+id/layout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#c8c8c8" >

android:id="@+id/listview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

但是这样的话内容就不能从透明的虚拟按钮下穿过,没原来那么好看。我们可以按照以前一样把根布局设置一个高度为系统栏高度和ActionBar高度的内边距就可以。

同时关于获取ActionBar和状态栏的高度,发现用原来的方法有时候会获取的值为0。自己google找了一下,找到两个前辈提供的获取高度方法,获取ActionBar高度,获取状态栏高度。

8if (android.os.Build.VERSION.SDK_INT > 18) {

Window window = getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

//设置根布局的内边距

RelativeLayout relativeLayout = (RelativeLayout)
findViewById(R.id.layout);

relativeLayout.setPadding(0, getActionBarHeight()+getStatusBarHeight(), 0,
0);

}

27// 获取手机状态栏高度

public int getStatusBarHeight() {

Class c = null;

Object obj = null;

Field field = null;

int x = 0, statusBarHeight = 0;

try {

c = Class.forName("com.android.internal.R$dimen");

obj = c.newInstance();

field = c.getField("status_bar_height");

x = Integer.parseInt(field.get(obj).toString());

statusBarHeight = getResources().getDimensionPixelSize(x);

} catch (Exception e1) {

e1.printStackTrace();

}

return statusBarHeight;

}

// 获取ActionBar的高度

public int getActionBarHeight() {

TypedValue tv = new TypedValue();

int actionBarHeight = 0;

if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))//
如果资源是存在的、有效的

{

actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,
getResources().getDisplayMetrics());

}

return actionBarHeight;

}

接下来,因为我自己写的一些应用是暗色的主题的,会导致透明的状态栏和ActionBar颜色不太协调。看到有一些应用是把状态栏的颜色设置成和ActionBar一样,这种解决方法也不错。

具体是怎么实现的也不太清楚,我自己猜测写了一个差不多状态栏。我是直接在根视图加入一个高度为状态栏高度的TextView,背景设置为和ActionBar一样。具体代码如下:

8// 创建TextView

TextView textView = new TextView(this);

LinearLayout.LayoutParams lParams = new
LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, getStatusBarHeight());

textView.setBackgroundColor(Color.parseColor("#3F9FE0"));

textView.setLayoutParams(lParams);

// 获得根视图并把TextView加进去。

ViewGroup view = (ViewGroup) getWindow().getDecorView();

view.addView(textView);

在模拟器上看还行,但是在实际的手机当中总感觉ActionBar有点过大,所以我在背景色里加入了一些渐变,在实体手机中就比较好看一点,不会觉得ActionBar太宽了。

android:startColor="#c8c8c8"

android:endColor="#3F9FE0"

android:angle="270"

android:type="linear"/>

㈤ android 怎样获取当前自己创建的actionbar

作为Android 3.0之后引入的新的对象,ActionBar可以说是一个方便快捷的导航神器。它可以作为活动的标题,突出活动的一些关键操作(如“搜索”、“创建”、“共享”等)、作为菜单的灵活使用,还可以实现类似TabWidget的标签功能以及下拉导航的功能,系统能够很好根据不同的屏幕配置来适应ActionBar的外观,配合起Fragemtn可谓是十分强大。
那么,对于今天的主角ActionBar怎么去添加?在Android3.0默认主题HloleFraphic(全息)主题中,已经创造了ActionBar,所以只要targetSdkVersion的值不低于11,创建的Activity中默认都会带有ActionBar。例如:

[html] view plain
<manifest ... >
<uses-sdk android:minSdkVersion="4"
android:targetSdkVersion="11" />
...
</manifest>
当然了,如果你不想为一个特定的Activity设置Action Bar,设置Activity主题为Theme.Holo.NoActionBar。
[html] view plain
<activity android:theme="@android:style/Theme.Holo.NoActionBar">

或者在运行时通过调用hide()隐藏Action Bar。自然也有show()。

[html] view plain
ActionBar actionBar = getActionBar();
actionBar.hide();

下面我们从下拉导航、视窗操作、标签导航三个方面逐一讨论ActionBar
第一,下拉导航
下拉导航最典型的应用场景就是在Google+中的使用,效果如下图:

图1;Google+ 图2:本文示例

实现此效果分如下几个步骤:
1.初始化一个SpinnerAdapter

[java] view plain
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,
R.array.action_list,
android.R.layout.simple_spinner_dropdown_item);

2.生成一个OnNavigationListener来响应ActionBar的菜单项点击操作

[java] view plain
/**
* 在这里配合Fragment,实现不同的页面导航
*/
OnNavigationListener mOnNavigationListener = new OnNavigationListener() {

@Override
public boolean onNavigationItemSelected(int position, long itemId) {
Fragment newFragment = null;
switch (position) {
case 0:
newFragment = new Fragment1();
break;
case 1:
newFragment = new Fragment2();
break;
case 2:
newFragment = new Fragment3();
break;
default:
break;
}
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newFragment, strings[position])
.commit();
return true;
}
};

3,将生成好的适配去和监听器塞给ActionBar

[java] view plain
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);//导航模式必须设为NAVIGATION_MODE_LIST
actionBar.setListNavigationCallbacks(mSpinnerAdapter,
mOnNavigationListener);

热点内容
怎么看pppoe密码 发布:2024-11-30 08:35:35 浏览:509
sandisk16gb存储卡 发布:2024-11-30 08:34:42 浏览:953
eclipsejava反编译 发布:2024-11-30 08:34:37 浏览:899
yy静态头像源码 发布:2024-11-30 08:30:21 浏览:680
javaparseint 发布:2024-11-30 08:23:12 浏览:909
抖音密码箱保险在哪里 发布:2024-11-30 08:10:43 浏览:998
广告文学脚本格式 发布:2024-11-30 08:09:57 浏览:634
期末到了解压的方法 发布:2024-11-30 07:53:49 浏览:865
sqlce数据库 发布:2024-11-30 07:41:21 浏览:726
奇瑞5x配置如何 发布:2024-11-30 07:39:50 浏览:642