Android标签栏有不同的片段和不同的操作栏图标

时间:2014-09-12 10:48:55

标签: java android android-actionbar

问题描述和问题

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

enter image description here

Wen用户点击网格视图中的项目我希望我的应用程序采取以下操作:

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

如下图所示:

enter image description here

由于我从不处理这类问题,请你举个例子或与我分享一些如何做到这一点的链接?我可以这样做吗?

3 个答案:

答案 0 :(得分:2)

这可能会有所帮助: Android studio - is possible to add tabs pointing to fragments from designer? 这不是你想要的,但是一个好的开始。如果你愿意做一些工作,你应该能够得到你想要的东西。如果你有一个基本的框架可以使用这个问题和更具体的问题,我很乐意帮助你^^

约翰

答案 1 :(得分:1)

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

您应该阅读有关ActionBar的更多信息。

最后一件事是,如果你先把它谷歌并尝试编写代码,当你遇到某个地方并与我们分享你的代码并寻求帮助时,它会更好。

答案 2 :(得分:0)

你必须使用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显示标签。

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

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()方法中使用您的图标和文字调用此函数。