当前位置: 首页 > 知识库问答 >
问题:

在实现材料搜索视图时,首次启动时不显示文本视图

温举
2023-03-14

我正在为我的活动实现搜索视图。它运行良好,但我也想在首次启动时显示文本视图。但是当我运行应用程序时,不显示文本视图,而只显示搜索菜单项,当我搜索任何内容并单击搜索按钮时,仅出现文本视图,我可以像以前一样搜索任何项目。但是问题出在第一次启动我的xml中的项目没有出现,只有带有搜索菜单项的工具栏出现。原因是什么?

这是我的代码

public class MainActivity extends AppCompatActivity {
    MaterialSearchView searchView;
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        searchViewCode();
    }

    private void searchViewCode() {
        searchView = (MaterialSearchView) findViewById(R.id.search_view);
        searchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));
        searchView.setEllipsize(true);
        searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                Toast.makeText(getApplicationContext(), query, Toast.LENGTH_SHORT).show();
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }
        });
        searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
            @Override
            public void onSearchViewShown() {
            }

            @Override
            public void onSearchViewClosed() {
            }
        });
    }    /*click alt+insert key */

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.material_search_menu, menu);
        MenuItem item = menu.findItem(R.id.action_search);
        searchView.setMenuItem(item);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_search:
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    public void onBackPressed() {
        if (searchView.isSearchOpen()) {
            searchView.closeSearch();
        } else {
            super.onBackPressed();
        }
    }
}

我的xml是

<Linearlayout>
<FrameLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/appcolor"
android:elevation="4dp"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
android:theme="@style/AppTheme.AppBarOverlay" />

<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout> 
 <TextView

                    android:id="@+id/ev_title"
                    android:text="uis sed nisi arcu"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>
                    
                    </Linearlayout>

提前谢谢。

共有1个答案

岳出野
2023-03-14

你应该约束布局

    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <FrameLayout
        android:id="@+id/toolbar_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/appcolor"
            android:elevation="4dp"
            android:fitsSystemWindows="true"
            android:minHeight="?attr/actionBarSize"
            android:theme="@style/AppTheme.AppBarOverlay" />

        <com.miguelcatalan.materialsearchview.MaterialSearchView
            android:id="@+id/search_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </FrameLayout>

    <TextView

        android:id="@+id/ev_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="uis sed nisi arcu"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/toolbar_container" />

</androidx.constraintlayout.widget.ConstraintLayout>
 类似资料:
  • 我已经制作了Hello World RCP应用程序,得到了以下类结构: 向Perspective.createInitialLayout()添加额外代码: 但不显示视图。 我将breakpoint设置到perspective.createInitialLayout()中,发现它没有执行。 我的观点声明是: ApplicationWorkbenchAdvisor.GetInitialWindowPe

  • 数据显示在logcat中,但不显示在文本视图中。我能做什么 这是我的日志

  • 我有一个Spring Boot CRUD应用程序正在运行,只要我使用常规的MySQL表。但是我需要显示来自多个表的数据,所以我创建了一个MySQL视图。但是现在出现以下错误: 创建在类路径资源[org/spring framework/boot/auto configure/ORM/JPA/hibernate JPA configuration . class]中定义的名为“entityManag

  • 在将我的应用程序迁移到Jetpack compose的过程中,我遇到了应用程序中的一个TextField需要自动完成功能的部分。 但是,从版本1.0.0-alpha05开始,我找不到任何使用Compose API实现这一点的功能。我发现的最接近的东西是和组合文件,但似乎需要大量的手动管道来创建一个自动完成菜单。 当然,要做的最明显的事情就是等待Jetpack Compose的未来更新。但我想知道,

  • 问题内容: 我正在运行Sql Server 2008 R2,并且需要在具有内部联接的视图上启用全文本搜索。我的问题是我不知道如何创建全文索引。 当我使用全文索引向导时,出现此错误。 必须在此表/视图上定义唯一列。 为了使您更好地理解我的问题,请参阅以下来自w3school http://www.w3schools.com/sql/sql_join_inner.asp的示例。最后选择只是我的观点。