gpt4 book ai didi

android - 当我搜索时,工具栏中的微调器出现 - Android Lollipop

转载 作者:行者123 更新时间:2023-11-29 20:58:49 25 4
gpt4 key购买 nike

我有一个抽屉导航,我在 fragment 之间切换,在 fragment 一中,我在工具栏中有一个微调器。在 fragment 二中,我不需要微调器,所以我删除了属性为“visibility=GONE”的微调器,这样就可以了。

但是,在 fragment 二中,执行以下步骤,确实发生了一些奇怪的事情

  1. 点击搜索图标
  2. 搜索 View 出现在工具栏中
  3. 我点击取消
  4. 搜索 View 折叠,Fragment ONE 的微调器出现

我曾尝试在搜索图标中使用此监听器“OnActionExpandListener”以在用户点击取消时再次隐藏微调器,但它不起作用。

有什么想法吗?

我设置工具栏的抽屉导航

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<include layout="@layout/toolbar_dropdown"/>

<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>

<!-- The navigation drawer -->
<ListView android:id="@+id/left_drawer"
android:fitsSystemWindows="true"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginTop="56dp"
android:choiceMode="singleChoice"
android:divider="@color/gray_light_divider_list_drawerNav"
android:dividerHeight="1dp"
android:background="@color/gray_light_background_list_drawerNav"
/>

抽屉导航 Activity 方法 OnCreate,我在其中设置工具栏

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
}

if(getSupportActionBar()!=null) {
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}

这就是我在 fragment 之间切换的方式

android.support.v4.app.FragmentTransaction transaction =  fragmentManager.beginTransaction();
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();

在 onDrawerOpened 方法中使用 ActionBarDrawerToggle,我删除了微调器,这意味着每次抽屉导航打开时我都像这样删除了微调器

 Spinner spinner = (Spinner)findViewById(R.id.spinner_nav);
spinner.setVisibility(View.GONE);

这是 fragment 二中的 OnActionExpandListener

 MenuItemCompat.OnActionExpandListener searchOnActionExpandListener = new MenuItemCompat.OnActionExpandListener()
{
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {

return true;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
Spinner spinner = (Spinner)findViewById(R.id.spinner_nav);
spinner.setVisibility(View.GONE);
return true;
}
};

最佳答案

为了解决这个问题,我做了以下事情。

我删除了工具栏中的微调器,所以它看起来像这样

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:background="?attr/colorPrimary">
</android.support.v7.widget.Toolbar>

然后我开始以编程方式在 fragment ONE 中添加微调器

    Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar);
if(toolbar.findViewWithTag("spinner_nav")==null) {
Spinner spinner = new Spinner(getActivity());
spinner.setTag("spinner_nav");

//Setting up the adapter
AdapterFragmentOne spinnerAdapter = new AdapterFragmentOne(getActivity(), array);
spinnerAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item);

if (spinner != null) {
spinner.setVisibility(View.VISIBLE);
spinner.setAdapter(spinnerAdapter);
}
spinnerAdapter.notifyDataSetChanged();
spinner.setOnItemSelectedListener(mOnNavigationListener);

toolbar.addView(spinner);
}

在我的抽屉导航 Activity 中,当抽屉打开时我删除了微调器,我执行

    //Removing the spinner view
Spinner spinner = (Spinner) toolbar.findViewWithTag("spinner_nav");
toolbar.removeView(spinner);

关于android - 当我搜索时,工具栏中的微调器出现 - Android Lollipop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26810094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com