android开发中如何自定义标题栏

android开发中如何自定义标题栏,第1张

原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标核伏闭题栏,这样不仅美观而且可以将进度条等加进去,如何实现:

方法一、在你的那张Activity中onCreate方改裂法中加上下面代码:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)

setContentView(R.layout.main) //软件activity的布局

但是新的问题又来了,这样是无法深层的定制标题栏的,比如原有的高度和背景都没有发生变化,那有没有好的方法呢?答案是有的、

方法二:

因此先定义一个style,若修改背景请修改android:windowTitleBackgroundStyle

若修改标题栏高度,请修改android:windowTitleSize

<?xml version="1.0" encoding="utf-8"?>

<resources xmlns:android="http://schemas.android.com/apk/res/android">

<style name="CustomWindowTitleBackground">

<item name="android:background">#565656</item>

</style>

<style name="test" parent="厅姿android:Theme">

<item name="android:windowTitleSize">50dp</item>

<item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>

</style>

</resources>

在程序的android_manifest.xml中对应activity中添加属性android:theme = "@style/test"

就可以了

<activity android:name=".Test"

android:theme = "@style/test" //就在这里

>

</activity>

之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了

ViewPager+Fragment要实现顶部标题栏,需要以下几个步骤:

1.首先在activity_main.xml布局文件中加入ViewPager组件

<android.support.v4.view.ViewPager

       android:id="@+id/viewpager"

       android:layout_width="match_parent"

       android:layout_height="match_parent">

2.既然要实现左右的页面滑动,肯定要往ViewPager中添加一陆凯些搭嫌Fragment,这里创建了3个Fragment的布局文件

这3个布局文件非常简单,跟Activity的布局用法一模一样,代码就不贴出来了,直接看Activity的java代码

import java.util.ArrayList

import java.util.List

import android.os.Bundle

import android.app.Activity

import android.support.v4.app.Fragment

import android.support.v4.app.FragmentActivity

import android.support.v4.app.FragmentManager

import android.support.v4.app.FragmentPagerAdapter

import android.support.v4.app.FragmentStatePagerAdapter

import android.support.v4.view.PagerTabStrip

import android.support.v4.view.PagerTitleStrip

import android.support.v4.view.ViewPager

import android.util.Log

import android.view.ViewGroup

public class MainActivity extends FragmentActivity {

private ViewPager m_vp

private fragment1 mfragment1

private fragment2 mfragment2

private fragment3 mfragment3

private ArrayList<Fragment>fragmentList

ArrayList<String>  titleList    = new ArrayList<String>()

private PagerTabStrip pagerTabStrip

private PagerTitleStrip pagerTitleStrip

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

m_vp = (ViewPager)findViewById(R.id.viewpager)

pagerTabStrip=(PagerTabStrip) findViewById(R.id.pagertab)

//设置下划线的颜色

pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_green_dark))

//设置背早枝唤景的颜色

pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark))

// pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagertab)

// //设置背景的颜色  pagerTitleStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark))

mfragment1 = new fragment1()

mfragment2 = new fragment2()

mfragment3 = new fragment3()

fragmentList = new ArrayList<Fragment>()

fragmentList.add(mfragment1)

fragmentList.add(mfragment2)

fragmentList.add(mfragment3)

   titleList.add("第一页 ")

   titleList.add("第二页")

   titleList.add("第三页 ")

m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()))

}

public class MyViewPagerAdapter extends FragmentPagerAdapter{

public MyViewPagerAdapter(FragmentManager fm) {

super(fm)

// TODO Auto-generated constructor stub

}

@Override

public Fragment getItem(int arg0) {

return fragmentList.get(arg0)

}

@Override

public int getCount() {

return fragmentList.size()

}

@Override

public CharSequence getPageTitle(int position) {

// TODO Auto-generated method stub

return titleList.get(position)

}

}

}

3.需要设置一个Adapter,上面代码是继承了FragmentPagerAdapter,在里面重写了3个方法.往这个Viewpager中添加了要显示的3个页面fragment和对应的3个标题

4.Fragment中有个onCreateView方法,返回的是这个fragment的视图View,其他的生命周期方法都跟Activity一样,还要注意的是在回复View前一定要加入代码

5.运行程序运行效果:

关于Viewpager和Fragment还有很多其他很有用的方法,建议查看官网API详细了解

第一步:打开手机桌面设置扰差中的【缓州皮便捷辅助】选项,

第二步:点击进入【导航键迹让】,

第三步:点击【虚拟按键】,根据个人使用习惯选择一种按键方式即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11983923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存