我正在开发一个应用程序,我有类似于环聊应用程序的东西,其中有ToolBar下的滑动标签,但我想将它集成到ToolBar中,而不是存在于Activity / Fragment布局中。
我尝试增加工具栏的高度并设置自定义视图,但如果我这样做,自定义视图位于工具栏的中间,而不是标题和菜单溢出按钮下方。
我尝试过几件事。最新的是:
toolBar.setCustomView(customView, layoutParams);
任何帮助都会很棒。
编辑:应该更清楚......我希望像这样的标签位于工具栏中而不是像这样的片段布局中, https://developer.android.com/samples/SlidingTabsColors/res/layout/fragment_sample.html
答案 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的示例工作示例,您可以查看它。