【问题标题】:Android tab bar with different fragments and different action bar icons具有不同片段和不同操作栏图标的 Android 选项卡栏
【发布时间】:2014-09-12 19:04:12
【问题描述】:

问题描述及问题

我正在使用带有操作栏的选项卡活动。在主页选项卡中,我有 GridView,其中包含一些项目,如下图所示(热线、出租车、餐馆等)

当用户单击网格视图中的项目时,我希望我的应用程序执行以下操作:

  • 将应用程序图标更改为我按下的网格视图项目图像。
  • 更改图标附近的测试
  • 在图标附近添加标准后退按钮,该按钮将返回网格视图屏幕。
  • 将选项卡片段更改为我指定的片段。

如下图所示:

由于我从不处理此类问题,您能否给我举个例子或与我分享一些链接,告诉我如何做到这一点?我可以这样做吗?

【问题讨论】:

    标签: java android android-actionbar


    【解决方案1】:

    这可能会有所帮助: Android studio - is possible to add tabs pointing to fragments from designer? 这并不完全是您想要的,而是一个好的开始。如果你愿意在其中付出一些努力,你应该能够得到你想要的。如果你有一个基本的框架可以使用并且有更具体的问题我会很乐意帮助你^^

    约翰

    【讨论】:

      【解决方案2】:

      您可以查看的第一个链接是THIS

      你应该阅读更多关于ActionBar的信息。

      最后一件事是,最好先用谷歌搜索它并尝试编写代码,当您遇到困难时与我们分享您的代码并寻求帮助。

      【讨论】:

      • 我是这样做的,我用谷歌搜索然后我尝试编写一些代码,然后我在这里提出问题
      【解决方案3】:

      你必须使用 actionbarsherlock 库。

      在xml中使用android.support.v4.app.FragmentTabHostTabWidget如下图:

      <android.support.v4.app.FragmentTabHost 
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
          style="@style/yourstyle"/>
      
          <FrameLayout
              android:id="@+id/realtabcontent"
              style="@style/realtabFrameContentStyle" />
      
      
             <TabWidget
                android:id="@android:id/tabs"
               style="@style/yourtabstyle" />
      
      </android.support.v4.app.FragmentTabHost>
      

      使用 SherlockFragmentActivity 显示选项卡。

      在活动代码中使用以下代码(最好在函数中)设置操作栏图标和文本:

      activity.getSupportActionBar().setDisplayShowCustomEnabled(true);
      activity.getSupportActionBar().setCustomView(R.layout.your_action_barlayout);
      
      
      ((TextView) (activity.getSupportActionBar().getCustomView().findViewById(R.id.action_bar_title))).setText("your title");
      
              ImageView homeButton = ((ImageView) (activity.getSupportActionBar().getCustomView().findViewById(R.id.your_icon)));
              homeButton.setVisibility(View.VISIBLE);
              homeButton.setOnClickListener(new View.OnClickListener() {
      
                  @Override
                  public void onClick(View v) {
                      Intent intent = new Intent(context, YourHOmeActivity.class);
                      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                      intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                      activity.startActivity(intent);
                      activity.finish();
                  }
              });
              ActionBar mActionBar = activity.getSupportActionBar();
              mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
              mActionBar.show();
      

      然后使用您的图标和片段中的文本onResume() 方法调用此函数。

      【讨论】:

      • 我不喜欢使用 ActionActionbarSherlock
      • 在这种情况下,使用 textview 和 imageview 创建您的自定义布局,然后将此自定义布局设置为您的操作栏,然后更改标签栏点击事件上的图标。
      猜你喜欢
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多