目前我正在使用Android的新工具栏(在appcompat中)。它运行正常,直到我尝试以下方法:std::vector<std::vector<T> > array(42);
。当我调用它时,工具栏会消失。我的布局:
toolbar.bringToFront()
现在我需要它的原因是<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@color/colorPrimary"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/ToolbarThemePopup"
/>
<com.asdev.sechat.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:background="@color/colorPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
/>
有一个覆盖工具栏的阴影,我不希望这样。任何人都知道如何将工具栏置于顶部并仍然可见它?感谢。
答案 0 :(得分:1)
来自文档:
更改树中视图的z顺序,因此它位于其他同级视图之上。如果父容器使用依赖于顺序的布局方案(例如,LinearLayout),则该排序改变可能影响布局。在KITKAT之前,此方法之后应该在视图的父级上调用requestLayout()和invalidate(),以强制父级使用新的子级顺序重绘。
https://developer.android.com/reference/android/view/View.html#bringToFront()
这会弄乱您的布局。您可能需要查看相对布局或找到一种不同的方法来摆脱阴影。或者,如果你是最小的sdk 21,你可以手动设置工具栏上的高程。
relativelayout示例:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<com.asdev.sechat.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:background="@color/colorPrimary" />
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@id/sliding_tabs" />
<android.support.v7.widget.Toolbar
android:id="@id/toolbar"
android:layout_width="match_parent"
android:align_parentTop="true"
android:layout_height="56dp"
android:background="@color/colorPrimary"
app:popupTheme="@style/ToolbarThemePopup"
app:theme="@style/ToolbarTheme" />
</RelativeLayout>
答案 1 :(得分:0)
在java文件中使用bringToFront
工具栏将解决您的问题。 德尔>
修改强>
这是我的应用中的有效解决方案
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:popupTheme="@style/Theme.AppCompat.Light.DarkActionBar"
app:theme="@style/Toolbar" />
<com.asdev.sechat.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="@dimen/tab_height"
android:background="@color/primaryColor"
android:minHeight="@dimen/tab_height"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>