【Android】一个简单又实用的toolbar

在很多软件中都可以看到风格统一的标题栏,上面包括返回键,当前页的名称等,下面详细分析

     



这里我们在布局文件中引用了一个toolbar,下面是toolbar的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="@color/colorToolBar"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <ImageView
        android:id="@+id/toolbar_left_im"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:background="@drawable/selector_back_press"
        android:gravity="center"
        android:padding="8dp"
        android:visibility="gone" />

    <TextView
        android:id="@+id/toolbar_left_tv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:background="@drawable/selector_back_press"
        android:drawableLeft="@mipmap/navi_back"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:padding="8dp"
        android:textColor="@android:color/white"
        android:textSize="18dp"
        android:visibility="gone" />

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:singleLine="true"
        android:textColor="@android:color/white"
        android:textSize="20dp" />

    <TextView
        android:id="@+id/toolbar_right_tv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@drawable/selector_back_press"
        android:gravity="center"
        android:padding="8dp"
        android:textColor="@android:color/white"
        android:textSize="18dp"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/toolbar_right_im"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@drawable/selector_back_press"
        android:gravity="center"
        android:padding="8dp"
        android:visibility="gone" />
</RelativeLayout>





然后新建一个class,名字叫做BaseActivity让它继承Activity或者AppCompatActivity都可以,然后在coding你的BaseActivity


import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.ifreshwing.speedshooting.common.NoDoubleClickListener;


public class BaseActivity extends AppCompatActivity {

    private TextView toolbar_string, toolbar_left_tv, toolbar_right_tv;
    private ImageView toolbar_left_im, toolbar_right_im;
    private RelativeLayout toolbar;

    public TextView getToolbar_string() {
        return toolbar_string;
    }

    public int getToolbarHeight() {
        toolbar = (RelativeLayout) findViewById(R.id.toolbar);
        return toolbar.getHeight();
    }

    public void setToolbar_string(String str) {
        toolbar_string = (TextView) findViewById(R.id.toolbar_title);
        toolbar_string.setText(str);
    }

    public TextView getToolbar_left_tv() {
        return toolbar_left_tv;
    }

    public void setToolbar_left_tv(String str) {
        toolbar_left_tv = (TextView) findViewById(R.id.toolbar_left_tv);
        if (!str.equals("")) {
            toolbar_left_tv.setText(str);
        }
        toolbar_left_tv.setVisibility(View.VISIBLE);
        toolbar_left_tv.setOnClickListener(new NoDoubleClickListener() {
            @Override
            public void onNoDoubleClick(View v) {
                finish();
            }
        });
    }

    public TextView getToolbar_right_tv() {
        return toolbar_right_tv;
    }

    public void setToolbar_right_tv(String str) {
        toolbar_right_tv = (TextView) findViewById(R.id.toolbar_right_tv);
        toolbar_right_tv.setText(str);
        toolbar_right_tv.setVisibility(View.VISIBLE);
    }

    public ImageView getToolbar_left_im() {
        return toolbar_left_im;
    }

    public void setToolbar_left_im(int id) {
        toolbar_left_im = (ImageView) findViewById(R.id.toolbar_left_im);
        toolbar_left_im.setImageResource(id);
        toolbar_left_im.setVisibility(View.VISIBLE);
        toolbar_left_im.setOnClickListener(new NoDoubleClickListener() {
            @Override
            public void onNoDoubleClick(View v) {
                finish();
            }
        });
    }

    public ImageView getToolbar_right_im() {
        return toolbar_right_im;
    }

    public void setToolbar_right_im(int id) {
        toolbar_right_im = (ImageView) findViewById(R.id.toolbar_right_im);
        toolbar_right_im.setImageResource(id);
        toolbar_right_im.setVisibility(View.VISIBLE);
    }

    public void hindAll() {
        if (toolbar_left_im != null) {
            toolbar_left_im.setVisibility(View.GONE);
        }
        if (toolbar_left_tv != null) {
            toolbar_left_tv.setVisibility(View.GONE);
        }
        if (toolbar_right_im != null) {
            toolbar_right_im.setVisibility(View.GONE);
        }
        if (toolbar_right_im != null) {
            toolbar_right_im.setVisibility(View.GONE);
        }
    }
}

然后在需要的Activity的布局文件加入

<include
    android:id="@+id/toolbar"
    layout="@layout/toolbar" />

在Activity的onCreate()方法写这两行代码就可以了

setToolbar_string("设置");
setToolbar_left_tv("返回");

这样我们app风格不仅统一了,而且返回都可以不用点返回键了,是不是很简单呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个简易旅游应用程序的开发流程: 1. 首先,创建一个新项目。在Android Studio中,选择“File”菜单,然后选择“New”>“New Project”。在“New Project”对话框中,输入应用程序的名称和包名,然后选择“Empty Activity”模板。单击“Finish”按钮创建项目。 2. 在“activity_main.xml”布局文件中,添加一个RecyclerView控件,用于显示旅游景点的列表。在布局文件中添加一个ToolBar控件,用于显示应用程序的标题和操作按钮。 3. 创建一个Java类来表示旅游景点的数据模型。该类应包含景点的名称、描述、图像等信息。 4. 创建一个RecyclerView Adapter类来管理旅游景点列表的显示。该类应继承RecyclerView.Adapter类,并重写onCreateViewHolder()和onBindViewHolder()方法来显示每个景点项。 5. 在MainActivity中,创建一个List对象来保存旅游景点的数据模型。在onCreate()方法中,将该List对象传递给RecyclerView Adapter,并将Adapter设置为RecyclerView控件的适配器。 6. 添加一个新的Activity,用于显示单个旅游景点的详细信息。在该Activity中,显示景点的图像、名称、描述等详细信息。 7. 在MainActivity中,添加一个ItemClickListener接口来处理RecyclerView中每个项的点击事件。当用户点击景点项时,应该启动详细信息Activity,并将相应景点的数据传递给它。 8. 在应用程序中添加一些图像资源文件,用于显示景点的图像。 9. 运行应用程序并测试它。您应该能够看到一个包含旅游景点列表的主屏幕,点击其中一个景点项后,应该能够看到该景点的详细信息。 这只是一个简单的旅游应用程序的开发流程,您可以根据自己的需求进行扩展和改进。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值