【问题标题】:How do I add a searchbar on an ImageButton, which when clicked expands horizontally to show the textbox?如何在 ImageButton 上添加搜索栏,单击该搜索栏会水平扩展以显示文本框?
【发布时间】:2016-05-01 05:26:24
【问题描述】:

用户界面

顶部显示艺术家,歌曲是PagerTitleStrip。旁边是带有搜索图标的ImageButton。艺术家、歌曲是使用片段实现的。 我想要实现的是,当我单击搜索图标时,搜索图标应该在 pagetitlestrip 上展开,这样做,您放置搜索查询的位置应该是可见的。我也想给它添加一个漂亮的动画效果,比如线性插值和扩展。 我是 android 新手,我发现很难实现它。 请注意,没有操作栏。所以我试图在 PagerTitleStrip 旁边的布局中实现一个搜索框。

这是上面显示的屏幕的主要布局。

<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/xcmain"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:fitsSystemWindows="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:background="@color/layout_background_layer_a020a2f34"
    tools:context="com.example.harshil.fallenstar.MainActivity"
    tools:showIn="@layout/xa_main">

    <android.support.v4.view.ViewPager
        android:id="@+id/xcmain_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.view.PagerTabStrip
            android:id="@+id/xcmain_pagertabstrip"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:paddingRight="100dp"
            android:paddingEnd="100dp"
            android:layout_gravity="top"
            android:gravity="center"
            android:textSize="16sp"
            android:background="@color/transparent_bg"
            android:textColor="@color/white"
            android:paddingTop="0dp"
            android:paddingBottom="0dp" />
    </android.support.v4.view.ViewPager>

    <ImageButton
        android:id="@+id/xcmain_search"
        android:layout_width="35dp"
        android:layout_height="50dp"
        android:src="@drawable/search_icon"
        android:scaleType="fitCenter"
        android:adjustViewBounds="true"
        android:background="@color/transparent_bg"
        android:paddingTop="12dp"
        android:paddingBottom="18dp"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/xcmain_settings"
        android:layout_toStartOf="@+id/xcmain_settings"
        android:onClick="searchOnClick">
    </ImageButton>
    <ImageButton
        android:id="@+id/xcmain_settings"
        android:layout_width="35dp"
        android:layout_height="50dp"
        android:src="@drawable/settings"
        android:scaleType="fitCenter"
        android:adjustViewBounds="true"
        android:background="@color/transparent_bg"
        android:paddingTop="12dp"
        android:paddingBottom="18dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

【问题讨论】:

    标签: android android-fragments android-pageradapter android-search


    【解决方案1】:

    1-为其添加权限。

    <uses-permission android:name="android.permission.REORDER_TASKS" />
    

    2-在菜单中添加一个项目

    <item
            app:showAsAction="ifRoom|collapseActionView"        
            android:id="@+id/serch_click"
            android:icon="@drawable/your_search_icon"
            android:title="@string/searchstring"
            app:actionViewClass="android.support.v7.widget.SearchView"
             />
    

    3- 最后onCreateOptionsMenu

     @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.menu_main, menu);
            final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.serch_icon));
            SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    
            return true;
        }
    

    【讨论】:

    • 布局中没有操作栏。我删除了它。
    • 我想你需要自定义编码然后。动作栏搜索 api 由谷歌提供。
    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多