How to add Search bar with edit text in toolbar

后端 未结 5 876
轮回少年
轮回少年 2020-12-28 20:17

I want to add search bar with edit text in toolbar like below image

My toolbar.xml:-

    


        
相关标签:
5条回答
  • 2020-12-28 20:51

    you can directly place the searchview in your activity.xml inside your toolbar and initialize it.I guess you will get the desired layout .

    0 讨论(0)
  • 2020-12-28 20:52

    Just add an edit text as part of your toolbar, something like this:

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/primaryColor"
        android:elevation="4dp">
    
        <EditText
            android:id="@+id/searchEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            />
    
    </android.support.v7.widget.Toolbar>
    
    0 讨论(0)
  • 2020-12-28 20:52

    I like the TextEdit solution above for backward compatibility.

    Here are two more things to consider to achieve the original example:

    1. On the Activity xml TextEdit definition add:

    android:drawableStart="@android:drawable/ic_menu_search"

                                   // To add the magnifying glass.
    

    android:hint="@string/Search_Txt"

                                  // To add the hint message.
    
    1. On the String xml file add:

      string name="Search_Txt">Find your dil ki deal

                               // Customize your message here.
      

    Note: The SearchView alternative will require API 21.

    Enjoy.

    0 讨论(0)
  • 2020-12-28 21:00

    I believe the view you are looking for is a SearchView. You can define on your menu.xml that you want to add it to your ActionBar/ToolBar. Like this:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/search"
            android:icon="@drawable/search_icon"
            android:title="@string/search"
            app:actionViewClass="android.support.v7.widget.SearchView"
            app:showAsAction="always" />
    
    </menu>
    

    Back on your Activity or Fragment you can manipulate the search view behavior and looks:

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        MenuItem searchViewMenuItem = menu.findItem(R.id.search);
        searchView = (SearchView) searchViewMenuItem.getActionView();
        ImageView v = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_button);
        v.setImageResource(R.drawable.search_icon); //Changing the image
    
        if (!searchFor.isEmpty()) {
            searchView.setIconified(false);
            searchView.setQuery(searchFor, false);
        }
    
        searchView.setQueryHint(getResources().getString(R.string.search_hint));
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
              //Do your search
            }
    
            @Override
            public boolean onQueryTextChange(String newText) {
                if(newText.isEmpty()) clearSearch();
                return false;
            }
        });
    }
    

    That is a simpler way to do it. The most advised way is to actually have an activity to respond to your search intents. For more info on that behalf visit: http://developer.android.com/intl/pt-br/guide/topics/search/search-dialog.html

    0 讨论(0)
  • 2020-12-28 21:07

    as my understanding I hope this code can help you...

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="10dp">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/gray_500"
            android:orientation="vertical"
            android:gravity="center|right">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@color/white"
                android:orientation="horizontal"
                android:gravity="center|right">
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="60dp"
                    android:layout_weight="8"
                    android:layout_margin="5dp"
                    android:text="snap deal"
                    android:gravity="center" >
                </TextView>
    
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="60dp"
                    android:layout_weight="2"
                    android:layout_margin="5dp"
                    android:ems="10"
                    android:text="Img"
                    android:gravity="center" >
                </TextView>
    
    
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@color/white"
                android:gravity="center|right">
    
                <EditText
                    android:id="@+id/editMobileNo"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_margin="5dp"
                    android:background="@drawable/login_edittext"
                    android:ems="10"
                    android:hint="Find your dil ki deal"
                    android:drawableLeft="@drawable/search"
                    android:gravity="center" >
                </EditText>
    
            </LinearLayout>
    
        </LinearLayout>
    
    </android.support.v7.widget.Toolbar>
    

    this is custom shape for EditText login_edittext.xml

     <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape>
                <gradient 
                    android:angle="270"
                    android:endColor="@color/white"
                    android:startColor="@color/white" />
                <stroke 
                    android:width="1dp"
                    android:color="@color/gray_500" />
                <corners 
                    android:radius="1dp" />
                <padding 
                    android:bottom="10dp" 
                    android:left="10dp" 
                    android:right="10dp" 
                    android:top="10dp" />
            </shape>
        </item>
    
    </selector>
    

    this is just sketch... you need to change back color ,size ,image etc.....

    0 讨论(0)
提交回复
热议问题