【Android studio】toolbar使用
前言
本博文主要是对toolbar使用的一个介绍,以及记录,方便后续使用时候可以直接加载。
toolbar介绍
在 Android Studio 中,Toolbar 是一种常用的用户界面元素,用于在应用程序中显示标题、图标和操作按钮。它位于屏幕的顶部,并提供了导航、搜索、设置等功能。
Toolbar 可以用于替代传统的 Action Bar,它和 Action Bar 类似,但提供了更多的自定义选项和功能。
Toolbar 的主要特点包括:
-
标题和子标题:可以在 Toolbar 中显示应用程序的名称和子标题(如果有的话)。
-
Logo 和图标:可以在 Toolbar 左边显示应用程序的图标或标志。
-
操作按钮:可以在 Toolbar 右边显示各种操作按钮,如搜索按钮、设置按钮、分享按钮等。
-
导航按钮:可以在 Toolbar 左边显示一个导航按钮,用于返回上一个界面或切换侧滑菜单等。
使用 Toolbar 可以实现更灵活和个性化的用户界面,可以通过代码或 XML 进行配置和自定义。在 Android Studio 中,可以通过在布局文件中添加 Toolbar 控件来使用它。同时,Toolbar 提供了一套丰富的 API,可以用于修改标题、添加操作按钮、设置图标等。
总的来说,Toolbar 是一个常用的界面元素,用于在 Android 应用中显示标题、图标和操作按钮。它可以通过 Android Studio 进行配置和自定义,提供了丰富的 API,可以满足各种界面设计需求。
toolbar使用
xml:
xmlns:app="http://schemas.android.com/apk/res-auto"
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#ffffff"
>
<android.support.v7.widget.Toolbar
android:id="@+id/center_content_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"
app:navigationIcon="@mipmap/back"
app:titleMargin="0dp"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp">
<TextView
android:id="@+id/center_content_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:textSize="20sp"
android:singleLine="true"
android:textColor="@android:color/black"
android:text="我的报修" />
</android.support.v7.widget.Toolbar>
</LinearLayout>
menu:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_history_item"
android:title="已读"
android:icon="@mipmap/all_read"
android:orderInCategory="100"
app:showAsAction="always"/>
</menu>
activity:
content_toolbar=(Toolbar)findViewById(R.id.center_content_toolbar);
content_toolbar.setNavigationOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
} );
content_toolbar.inflateMenu(R.menu.history);
content_toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_history_item://监听菜单按钮
intent.setClass(My_item.this, ItemHistory.class);
Bundle bundle=new Bundle();
bundle.putString("use_num", use_num);
intent.putExtras(bundle);
startActivity(intent);
return true;
}
return false;
}
});
center_content_title = (TextView)findViewById(R.id.center_content_title);
center_content_title.setText("维修工单");
@mipmap/all_read图片
图片可以自定义替换,也可以用我这边的图片。
额外补充
需求实现部分就先到这!接下来,是一些个人平时整理的c++要点概要,如有需要可以进行阅读!
结构体
- 第一种是最基本的结构体定义, 其定义了一个结构体 A。
struct A { int a;};
- 第二种则是在定义了一个结构体 B 的同时定义了一个结构体 B 的变量 m。
struct B { int b;}m;
- 第三种结构体定义没有给出该结构体的名称, 但是定义了一个该结构体的变量 n, 也就是说,若是想要在别处定义该结构体的变量是不行的, 只有变量 n 这种在定义结构体的同时定义变量才行。
struct { int c;}n;
- 第四种结构体定义在第一种结构定义的基础上加了关键字
typedef
, 此时我们将struct D{int d}
看成是一个数据类型, 但是因为并没有给出别名, 直接用 D 定义变量是不行的。 如D test;
,不能直接这样定义变量 test。 但struct D test;
可行。
typedef struct D { int d;};
- 第五种结构体定义在第四种结构体定义的基础上加上了别名 x, 此时像在第四种结构体定义中说得那样, 此时的结构体 E 有别名 x, 故可以用 x 定义 E 的结构体变量。 用 E 不能直接定义, 需要在前面加
struct,
如struct E test;
。
typedef struct E { int e;}x;
- 第六种结构体定义在第五种的基础上减去了结构体名, 但是若是直接使用 y 来定义该结构体类型的变量也是可以的。 如
y test;
。 (常用)
typedef struct { int f;}y;
使用内联函数的时候要注意:
函数重载
- C++函数重载的判断依据
- 函数形参的个数;
- 函数形参的类型;
- 形参的顺序;
- 不能把返回值作为函数重载的条件, 原因是编译器在编译时不会去判断函数的返回类型,函数只有调用后, 编译器才会去验证返回类型, 所以返回值不能作为函数重载的依据;
- 常函数 const 可以作为函数重载判断依据, 原因: 重载[]运算符时, 有没有 const 的区别是: 有 const 只读, 没有 const 读写都可以。
- 注意事项:
- 形参的个数或类型至少要有一项是不同的;
- 编译器不以返回值来区分函数。
虚函数和纯虚函数
纯虚函数是指在 C++中, 函数可以用“virtual”和“= 0”关键字来声明。 该函数是一个虚函数,但是在声明时, 没有定义它的函数体。 它是一个空函数, 只提供函数声明, 而不提供实际实现。 由于它编译器不能确定如何实现, 因此需要在子类中实现它。 因此, 纯虚函数也被称为抽象函数。 形如:
class <类名>
{
virtual <类型><函数名>(<参数表>)=0;
…
};
虚函数和纯虚函数的特性:
- 虚函数可以在类中声明, 也可以在类的外部声明, 编译器会自动将它们转换为虚函数;但是纯虚函数只能在类中声明, 而不能在类的外部声明。
- 虚函数可以有实现, 也可以没有实现; 而纯虚函数没有实现, 不可以有实现。
- 虚函数可以在子类中覆盖, 也可以不被覆盖; 而纯虚函数必须在子类中覆盖, 否则编译器将报错。
- 虚函数可以被多态调用, 也可以被静态调用; 而纯虚函数只可以被多态调用, 不可以被静态调用。