安卓开发之ToolBar的使用
文章预览前言一、Toolbar 的基本用法1.1、设置主题1.2、布局文件1.3、MainActivity二、测试前言Toolbar是应用程序中使用的标准工具栏。Toolbar是应用程序布局中使用的Actionbar的泛华,虽然Actionbar是传统Activity的不透明窗口装饰的控制框架的一部分,但是在视图层次里Toolbar可以被任何任意级别的嵌套。使用Toolbar时,应用程序可以通过使
前言
Toolbar是应用程序中使用的标准工具栏。
Toolbar是应用程序布局中使用的Actionbar的泛华,虽然Actionbar是传统Activity的不透明窗口装饰的控制框架的一部分,但是在视图层次里Toolbar可以被任何任意级别的嵌套。使用Toolbar时,应用程序可以通过使用android.support.v7.app.AppCompatActivity的setSupportActionBar()方法来将Toolbar指定为Activity的action bar。
Toolbar比Actionbar支持更多的集中特征设置, 它可以包含以下可选元素的组合:
导航按钮(A navigation button):可以是一个返回箭头,菜单切换,关闭,折叠,完成或者应用程序选择的另一个符号等等。这个按钮应该始终被用于访问Toolbar容器内的其它导航目的地,和它的所指内容或者所指当前上下文。如果要设置导航按钮,那么它在Toolbar的最小高度里是垂直对齐的。
logo图片(A branded logo image):可以任意宽而且可以延生到Toolbar的整个高度。
标题和子标题(A title and subtitle):标题(title)应该是一个标志,它应该表示Toolbar在导航层级中的位置和所包含的内容。如果当前的内容应注明任何扩展信息,那么就可以用子标题(subtitle)。如果应用程序已经用了logo图片,那么应当考虑省略标题和子标题。
一个或者多个自定义视图(One or more custom views):Toolbar可以添加任意的子视图。但如果子视图需要居中显示,只有在其它所有的元素被放置完之后,才能尝试让它在剩下的空间中居中显示。
建议:现在的Android UI 开发人员,应该更注重工具栏视觉上不同的配色方案而不是应用程序的图标,以前的标准布局应用程序图标加标题在API 21以上的设备上不推荐使用。
参考文章:
https://blog.csdn.net/wangjiang_qianmo/article/details/50673176
https://blog.csdn.net/da_caoyuan/article/details/79557704
一、Toolbar 的基本用法
1.1、设置主题
在res/values/style.xml中:
<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
1.2、布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
//直接在布局中设置
<androidx.appcompat.widget.Toolbar
android:id="@+id/tb"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#ffff00"
app:logo="@mipmap/ic_launcher"
app:navigationIcon="@drawable/ic_baseline_arrow_back_24"
app:subtitle="子标题"
app:subtitleTextColor="#00ffff"
app:title="标题"
app:titleMarginStart="90dp"
app:titleTextColor="#ff0000" />
//在java代码后种设置
<androidx.appcompat.widget.Toolbar
android:id="@+id/tb2"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_marginTop="10dp"
android:background="#ffff00" />
//标题居中显示
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_marginTop="10dp"
app:navigationIcon="@drawable/ic_baseline_arrow_back_24"
android:background="#ffff00">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="标题" />
</androidx.appcompat.widget.Toolbar>
</LinearLayout>
1.3、MainActivity
package com.enjoy.mytoolbar;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 在布局中设置ToolBar
*/
Toolbar toolbar = findViewById(R.id.tb);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("leo", "onClick: toolbar被点击了" );
}
});
/**
* 在java代码中设置ToolBar
*/
Toolbar toolbar2 = findViewById(R.id.tb2);
toolbar2.setNavigationIcon(R.drawable.ic_baseline_arrow_back_24);
toolbar2.setTitle("标题");
toolbar2.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("leo", "onClick: toolbar222被点击了" );
}
});
}
}
二、测试
更多推荐
所有评论(0)