【问题标题】:Make the transparent actionbar in fragment在片段中制作透明操作栏
【发布时间】:2015-03-24 06:11:51
【问题描述】:

我一直在寻找如何在片段中制作透明的操作栏,到目前为止还没有答案。因此,场景是,我使用 Navigation Drawer 创建了一个应用程序,每个菜单引用 MainActivity 中的相同操作栏。

但我无法在透明模式下自定义操作栏,例如 Transparent Actionbar: custom tabcolor。在此:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));

该代码必须在 setContentView 之前,正如您在片段中所知道的,我们使用 onCreateView 进行布局。

如何实现fragment中的透明actionbar?

【问题讨论】:

  • 使用您的片段所附加到的父活动中的代码。
  • 那么您的代码在MainActivity 类中,您的导航抽屉在其中吗?
  • 为什么不把这段代码放在Activity类或者FragmentActivity类上呢?我觉得会更好。

标签: java android xml layout fragment


【解决方案1】:

如果你只想制作透明的Actionbar,那么你可以在Fragment的onCreateView中通过这种方式来实现 getActivity().getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#33000000")));

【讨论】:

    【解决方案2】:

    使用工具栏并使用下面的代码让它表现得像操作栏

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
    setSupportActionBar(toolbar);
    

    要在布局中包含工具栏,请使用以下内容。

    <android.support.v7.widget.Toolbar
    android:id=”@+id/my_awesome_toolbar”
    android:layout_height=”wrap_content”
    android:layout_width=”match_parent”
    android:minHeight=”?attr/actionBarSize”
    android:background=”?attr/colorPrimary” />
    

    与处理ActionBar相比,更改Toolbar的透明度要容易得多

    设置后,您可以像处理任何其他视图一样处理工具栏,即动态更改透明度/颜色对于工具栏来说非常容易

    【讨论】:

    • 我不能使用这个,因为工具栏已经基于主工具栏(在主活动中设置)。
    • 您始终可以使用 getActivity() 方法并引用外部定义的工具栏。您还可以创建一个全局变量来引用工具栏
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多