Android 自定义TitleBar

1. 去掉Android自带TitleBar

在styles.xml中新建 style

<style name="notitle" parent="android:Theme">

    <item name="android:windowNoTitle">true</item>

</style>


在AndroidManifest.xml中相应的Activity标签中使用该style

<activity

    android:name=".MainActivity"

    android:theme="@style/notitle"

>


2. 编写TitleBar 布局xml文件 my_title.xml

<com.coco.view.MyTitleBar

xmlns:android:=http://shemes.android.com/apk/res/android"

android:id="@+id/my_title"

android:layout_width="match_parent"

android:layout_height="50dp"

android:background="#ffffff"

android:orientation="horizontal">

<LinearLayout

android:layout_width="50dp"

android:layout_height="match_parent"

android:id="@+id/mytitle_left"

android:orientation="vertical"

android:gravity="center"

android:layout_alignParentLeft="true"/>




<LinearLayout

android:layout_width="50dp"

android:layout_height="match_parent"

android:id="@+id/mytitle_center"

android:orientation="vertical"

android:gravity="center"

android:layout_toRightOf="@id/mytitle_left"/>



<LinearLayout

android:layout_width="50dp"

android:layout_height="match_parent"

android:id="@+id/mytitle_right"

android:orientation="vertical"

android:gravity="center"

android:layout_alignParentRight="true"/>



</com.coco.view.MyTitleBar>


3. 编写MyTitleBar 类 继承RelativeLayout

并在onFinishInflate方法中给各view赋值


public class MyTitleBar extends RelativeLayout{

LinearLayout leftView;

LinearLayout centerView;

LinearLayout rightView;



public MyTitleBar(Context context){

super(context);

}



protected void onFinishInflate(){

super.onFinishInflate();

leftView = (LinearLayout) findViewById(R.id.mytitle_left);

centerView = (LinearLayout) findViewById(R.id.mytitle_center);

rightView = (LinearLayout) findViewById(R.id.mytitle_right);

}



public void addLeftView(View view){

if(leftView != null){

leftView.addView(view);

}

}






public void addCenterView(View view){

if(lcenterView != null){

centerView.addView(view);

}

}






public void addRightView(View view){

if(rightView != null){

rightView.addView(view);

}

}

}

}


4. 在activity_main.xml布局文件中include my_title.xml


<include layout="@layout/my_title"></include>


5. 在MainActivity中使用该TitleBar


MyTitleBar myTitleBar;

protected void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    myTitleBar = (myTitleBar) findViewById(R.id.my_title);

    TextView tv = new TextView(this);

    tv.setText("Hello Left view");

    myTitleBar.addLeftView(tv);

}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值