Android 官方Demo ActionBarCompat-Styled
程序员文章站
2022-03-24 18:45:58
ActionBarCompat-Styled Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Styled/#readme 此示例演示了如何使用自定义的ActionBarCompat,它包含了三个分页标签。需要注意的 ......
ActionBarCompat-Styled Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Styled/#readme
此示例演示了如何使用自定义的ActionBarCompat,它包含了三个分页标签。需要注意的是,ActionBar的分页模式已经在API 21以后被遗弃。
界面在不同设备上可能会有所差别,以下是其中一些截图:
实现步骤:
- 创建Activity并继承AppCompatActivity,实现ActionBar.TabListener接口;
- 在res资源文件夹下创建menu文件夹,并在menu文件夹下创建主菜单布局xml;
- 重写onCreateOptionsMenu()方法,创建并初始化菜单;
- 创建并初始化Tab分页。
下面是Demo代码,可以通过加载Fragment达到分页显示不同内容的效果。
import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.widget.Toast; public class ActionBarStyledActivity extends AppCompatActivity implements ActionBar.TabListener { private final String TAG = "ActionBarStyledActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_action_bar_styled); // 设置菜单使用Tab分页 ActionBar ab = getSupportActionBar(); /* 设置当前导航模式。导航模式有三种: NAVIGATION_MODE_STANDARD:标准导航模式。 NAVIGATION_MODE_LIST:标签导航模式。 NAVIGATION_MODE_TABS:下拉列表导航模式。 */ ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // 创建Tab分页 ab.addTab(ab.newTab().setText("Tab 1").setTabListener(this)); ab.addTab(ab.newTab().setText("Tab 2").setTabListener(this)); ab.addTab(ab.newTab().setText("Tab 3").setTabListener(this)); } @Override public boolean onCreateOptionsMenu(Menu menu) { // 绑定菜单布局文件,布局文件已定义两个菜单子项refresh和settings getMenuInflater().inflate(R.menu.styled_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public void onTabSelected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) { // Tab分页被选中时调用. Log.i(TAG, tab.getText() + " onTabSelected"); } @Override public void onTabUnselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) { // 当前Tab分页不再被选中,被下一个选中的分页替代时调用。例如当前选中Tab1,当你点击Tab2时,Tab1会触发此方法,而Tab2会触发onTabSelected. Log.i(TAG, tab.getText() + "onTabUnselected"); } @Override public void onTabReselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) { // 已选中此Tab分页,再次点击选中同一个分页时调用。例如已经选中了Tab1,当你再次点击Tab1时,Tab1会触发此方法。 Log.i(TAG, tab.getText() + "onTabReselected"); } }
推荐阅读
-
Android异步下载图片并且缓存图片到本地DEMO详解
-
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
-
Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】
-
谷歌官方首次提及Android 11
-
官方爆料:魅族Flyme的Android 11底层安排上了?
-
Android Q提供桌面模式 罗永浩:谷歌官方做的不会好用
-
Android发送GET与POST请求的DEMO详解
-
小米9刷官方Android Q系统详细体验
-
详解Android Studio实现用户登陆界面demo(xml实现)
-
Android 离线人脸识别 ArcFace 2.0 Demo开发分享