【问题标题】:Android - Creating a custom SearchViewAndroid - 创建自定义 SearchView
【发布时间】:2014-12-22 12:14:02
【问题描述】:

我有一个包含 SearchView 和 ListView 的列表活动。我希望 SearchView 类似于 google maps android 应用程序中的内容。

目前我在activity_main.xml 中的SearchView 代码是

<SearchView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:queryHint="Search restaurants"
        android:iconifiedByDefault="false"
        android:id="@+id/searchView" />

有人可以指导我如何获得像上面这样的自定义 SearchView。

【问题讨论】:

    标签: android android-layout searchview


    【解决方案1】:

    您可以在布局中添加来自AppCompat Libraryandroid.support.v7.widget.Toolbar。它就像一个可以放置在任何地方的自定义 ActionBar。然后您可以添加一个菜单切换和一个可以折叠/展开的android.support.v7.widget.SearchView。最后,添加来自menu.xml 的一些操作。

    将自定义工具栏设置为您的 ActionBar 替代品:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.blah);
    
        Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
        setSupportActionBar(toolbar);
    }
    

    【讨论】:

      【解决方案2】:

      您必须使用图标和 Ed​​itText 创建布局。像这样的:

      <RelativeLayout
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="@dimen/abc_action_bar_default_height"
              >
      
          <ImageButton
                  android:id="@+id/btnGoToMap"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentLeft="true"
                  android:padding="18dp"
                  android:background="@android:color/transparent"
                  android:src="@drawable/btn_go_to_map_selector"
                  android:contentDescription="@string/contentDescription"
                  />
      
          <ImageButton
                  android:id="@+id/btnCleanSearch"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentRight="true"
                  android:paddingTop="18dp"
                  android:paddingLeft="18dp"
                  android:paddingBottom="18dp"
                  android:paddingRight="27.5dp"
                  android:background="@android:color/transparent"
                  android:src="@drawable/btn_clean_search_selector"
                  android:contentDescription="@string/contentDescription"
                  />
          <LinearLayout
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="horizontal"
                  android:layout_alignParentTop="true"
                  android:layout_centerHorizontal="true"
                  android:layout_marginLeft="60dp"
                  android:layout_marginRight="60dp"
                  >
              <ImageButton
                      android:id="@+id/btnShowSearch"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_marginRight="5dp"
                      android:layout_gravity="center_vertical"
                      android:background="@android:color/transparent"
                      android:src="@drawable/btn_show_search_field_selector"
                      android:contentDescription="@string/contentDescription"
                      />
              <EditText
                      android:id="@+id/fldSearchPhrase"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_gravity="center_vertical"
                      android:inputType="text"
                      android:singleLine="true"
                      android:textSize="20sp"
                      android:textColor="@android:color/black"
                      >
                      <requestFocus/>
              </EditText>
          </LinearLayout>
      
      </RelativeLayout>
      

      它也更灵活,允许您管理布局的不同部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-10
        • 2017-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多