這是因爲您的活動佈局的層次順序。您的ActionBar
正在您的視圖上繪製。你可以找到你的活動的框架,並在那裏添加視圖。
private void addCircleView() {
final FrameLayout frameLayoutRoot = (FrameLayout) getActivity().getWindow()
.getDecorView().findViewById(android.R.id.content);
View circleView = inflater.inflate(
R.layout.my_circle_view, frameLayoutRoot, false);
ViewGroup.MarginLayoutParams marginLayoutParams =
((ViewGroup.MarginLayoutParams) circleView.getLayoutParams());
marginLayoutParams.topMargin = getStatusBarHeight(getActivity())
+ getActivity().getActionBar().getHeight()
+ getResources().getDimensionPixelSize(R.dimen.your_margin_top_circle);
circleView.setLayoutParams(marginLayoutParams);
frameLayoutRoot.addView(circleView);
}
public int getStatusBarHeight(Context context) {
int result = 0;
final int resourceId = context.getResources().getIdentifier(
"status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}
還記得當您導航到其他片段時刪除視圖。
frameLayoutRoot.removeView(circleView);
編輯:
請注意,這是東西,你應該在你添加ActionBar
水平,這是活動做。在這種情況下,您不需要這些解決方法。這些東西用ToolBar
更容易實現。
嘗試創建和第一膨脹自定義視圖,則突片 –