最近我从旧的 ActionBar 迁移到新的 Toolbar。
我有一个自定义活动(实际上是我的主要活动中的一个片段),其中我允许用户单击工具栏中的图标,然后使用自定义布局出现一个搜索框(在工具栏中)。
问题是,它在迁移之前工作正常,但现在一旦我单击按钮并使用搜索框切换到自定义操作栏布局,布局就会跨越整个屏幕,而不是工具栏的正常大小。
这是我用来替换工具栏的代码:
LayoutInflater inflator = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View actionBarView = inflator.inflate(R.layout.map_action_layout, null);
actionBar = ((DrawerActivity)getActivity()).getSupportActionBar();
actionBar.setCustomView(actionBarView);
这是地图操作布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<AutoCompleteTextView
android:id="@+id/autoComplete"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ems="10"
android:hint="@string/search_adress_hint"
android:imeOptions="actionSearch"
android:inputType="textAutoComplete|textAutoCorrect"
android:paddingRight="50dp"
android:textColor="@android:color/white"
android:textCursorDrawable="@null" >
<requestFocus />
</AutoCompleteTextView>
<ImageButton
android:id="@+id/clear_address"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="17dp"
android:background="@drawable/ic_action_cancel"
android:gravity="center_horizontal|center_vertical"
android:scaleType="fitCenter" />
</RelativeLayout>
注意:无论我在上面的高度中输入什么值,无论是固定dp值还是wrap_content,布局仍然跨越整个屏幕。
这是我的工具栏布局被替换:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/ColorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_scrollFlags="scroll|enterAlways"
android:elevation="4dp"
app:layout_collapseMode="pin">
</android.support.v7.widget.Toolbar>
工具栏位于 AppBarLayout 内。
我做错了什么?我怎样才能达到我想要的结果?
标准工具栏高度设置为
?attr/actionBarSize
。
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />