如何获得像环聊一样的工具栏

时间:2014-12-23 05:04:35

标签: android android-custom-view android-toolbar

我正在开发一个应用程序,我有类似于环聊应用程序的东西,其中有ToolBar下的滑动标签,但我想将它集成到ToolBar中,而不是存在于Activity / Fragment布局中。

我尝试增加工具栏的高度并设置自定义视图,但如果我这样做,自定义视图位于工具栏的中间,而不是标题和菜单溢出按钮下方。

我尝试过几件事。最新的是:

toolBar.setCustomView(customView, layoutParams);

任何帮助都会很棒。

编辑:应该更清楚......

我希望像这样的标签位于工具栏中而不是像这样的片段布局中, https://developer.android.com/samples/SlidingTabsColors/res/layout/fragment_sample.html

enter image description here

1 个答案:

答案 0 :(得分:0)

您必须使用OnScrollChanged中的ScrollView功能。 ActionBar不允许您设置不透明度,因此在操作栏上设置背景可绘制,您可以根据滚动视图中的滚动量更改其不透明度。我给出了一个示例工作流程

函数集根据其位置WRT窗口为视图locationImage提供适当的alpha。

this.getScrollY()为您提供scrollView滚动了多少

public void OnScrollChanged(int l, int t, int oldl, int oldt) {
    // Code ...
    locationImage.setAlpha(getAlphaForView(locationImageInitialLocation- this.getScrollY()));
}


private float getAlphaForView(int position) {
    int diff = 0;
    float minAlpha = 0.4f, maxAlpha = 1.f;
    float alpha = minAlpha; // min alpha
    if (position > screenHeight)
        alpha = minAlpha;
    else if (position + locationImageHeight < screenHeight)
        alpha = maxAlpha;
    else {
        diff = screenHeight - position;
        alpha += ((diff * 1f) / locationImageHeight)* (maxAlpha - minAlpha); // 1f and 0.4f are maximum and min
                                            // alpha
        // this will return a number betn 0f and 0.6f
    }
    // System.out.println(alpha+" "+screenHeight +" "+locationImageInitialLocation+" "+position+" "+diff);
    return alpha;
}

https://github.com/ramanadv/fadingActionBar的示例工作示例,您可以查看它。

enter image description here