安卓搜索视图不显示



我为我的学校制作了一个Android应用程序,我想在Recyclerview中实现Searchview。我的第一个活动是导航抽屉,然后当我使用菜单获取我想要的活动时,它会打开包含很多操作系统内容的卡片视图。主要问题是搜索视图小部件没有显示,所以我无法使用过滤器

我的布局

主要布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
        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/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:openDrawer="start">
    <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">
        <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@android:color/white"
                app:popupTheme="@style/AppTheme.PopupOverlay" />
    </android.support.design.widget.AppBarLayout>
    <include layout="@layout/visitasrecyclerview" />

</android.support.v4.widget.DrawerLayout>

回收器视图布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:showIn="@layout/activity_visitas">
                tools:context=".VisitasActivity">

    <android.support.v7.widget.RecyclerView
            android:id="@+id/visitasRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:layout_editor_absoluteX="745dp"
            tools:layout_editor_absoluteY="-51dp" />
    <ProgressBar
            android:id="@+id/visitas_loader"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"/>
    <TextView
            android:id="@+id/visitasProgress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/visitas_loader"
            android:text="A carregar"
            android:layout_centerHorizontal="true"/>

</RelativeLayout>

列表布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:background="?attr/selectableItemBackground"
              android:clickable="true">
    <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            card_view:cardBackgroundColor="@color/color_white"
            card_view:cardCornerRadius="5dp"
            card_view:cardElevation="5dp"
            card_view:cardUseCompatPadding="true">
        <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="8dp">
            <!--1ª linha-->
            <TextView
                    android:text="Escola:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/nameEscola"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <TextView
                    android:id="@+id/textViewEscolaV"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameEscola"
                    android:layout_marginLeft="5dp"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_marginStart="5dp"/>
            <!--2ª linha-->
            <TextView
                    android:text="Destino:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewEscolaV"
                    android:id="@+id/nameDestino"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <TextView
                    android:id="@+id/textViewDestino"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDestino"
                    android:layout_marginLeft="5dp"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_marginStart="5dp"
                    android:justificationMode="inter_word"/>

            <!--saida-->
            <TextView
                    android:text="Datas da Visita:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewDestino"
                    android:id="@+id/nameDatasVisitas"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <!--Saída-->
            <TextView
                    android:text="Partida:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDatasVisitas"
                    android:id="@+id/nameDataSaida"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <TextView
                    android:id="@+id/textViewDataSaida"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDatasVisitas"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_toEndOf="@+id/nameDataSaida"
                    android:layout_toRightOf="@id/nameDataSaida"
                    android:layout_marginLeft="5dp"
                    android:paddingLeft="9dp" android:paddingStart="9dp"/>
            <TextView
                    android:text="Hora:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDatasVisitas"
                    android:id="@+id/nameHoraSaida"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"
                    android:layout_toEndOf="@+id/textViewDataSaida"
                    android:layout_toRightOf="@id/textViewDataSaida"
                    android:paddingLeft="15dp" android:paddingStart="15dp"/>
            <TextView
                    android:id="@+id/textViewHoraSaida"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_below="@+id/nameDatasVisitas"
                    android:layout_toEndOf="@+id/nameHoraSaida"
                    android:layout_toRightOf="@id/nameHoraSaida"
                    android:paddingLeft="5dp"
            />
            <!--Chegada-->
            <TextView
                    android:text="Chegada:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDataSaida"
                    android:id="@+id/nameDataChegada"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <TextView
                    android:id="@+id/textViewDataChegada"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDataSaida"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_toEndOf="@+id/nameDataChegada"
                    android:layout_toRightOf="@id/nameDataChegada"
                    android:layout_marginLeft="5dp"
            />
            <TextView
                    android:text="Hora:"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDataSaida"
                    android:id="@+id/nameHoraChegada"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"
                    android:layout_toEndOf="@+id/textViewDataChegada"
                    android:layout_toRightOf="@id/textViewDataChegada"
                    android:paddingLeft="15dp" android:paddingStart="15dp"/>
            <TextView
                    android:id="@+id/textViewHoraChegada"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_below="@+id/nameDataSaida"
                    android:layout_toEndOf="@+id/nameHoraChegada"
                    android:layout_toRightOf="@id/nameHoraChegada"
                    android:paddingLeft="5dp"
                    android:paddingStart="5dp"/>
            <!--Turmas-->
            <TextView
                    android:text="@string/turma_s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDataChegada"
                    android:id="@+id/nameTurmas"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <TextView
                    android:id="@+id/textViewTurmas"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameDataChegada"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_toEndOf="@+id/nameTurmas"
                    android:layout_toRightOf="@id/nameTurmas"
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"/>
            <TextView
                    android:text="@string/tipo_de_turma"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/nameTurmas"
                    android:id="@+id/nameTipoTurmas"
                    tools:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:textStyle="bold"/>
            <TextView
                    android:id="@+id/textViewTipoTurmas"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewTurmas"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                    android:layout_toEndOf="@+id/nameTipoTurmas"
                    android:layout_toRightOf="@id/nameTipoTurmas"
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"/>
            <TextView
                    android:layout_width="32dp"
                    android:layout_height="32dp"
                    android:id="@+id/pdfButton"
                    android:layout_below="@+id/textViewTipoTurmas"
                    android:background="@drawable/ic_pdf_download32"
                    android:textColor="@android:color/white"
                    android:layout_marginLeft="1dp"
                    android:layout_marginStart="1dp"/>
        </RelativeLayout>

    </android.support.v7.widget.CardView>
</LinearLayout>

和我的主代码

    public class VisitasActivity extends AppCompatActivity implements VisitasAdapter.visitasAdapterListener {
    private static final String URL_ATIVIDADES = "http://esmaior.pt/miga/db/getFromDatabase.php?&getAllVisitasMobile=getAllVisitasMobile";
    private RecyclerView recyclerView;
    private LinearLayoutManager vlinearLayoutManager;
    private DividerItemDecoration vdividerItemDecoration;
    private List<Visitas> visitasLista;
    private VisitasAdapter mAdapter;
    static ProgressBar visitas_loader;
    static TextView visitasProgress;
    private SearchView searchView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.visitasrecyclerview);
        recyclerView = findViewById(R.id.visitasRecyclerView);
        visitas_loader = findViewById(R.id.visitas_loader);
        visitasProgress = findViewById(R.id.visitasProgress);
        visitasLista = new ArrayList<>();
        mAdapter = new VisitasAdapter(this, visitasLista, this);
        whiteNotificationBar(recyclerView);
        vlinearLayoutManager = new LinearLayoutManager(this);
        vlinearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        vdividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(), vlinearLayoutManager.getOrientation());
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(mLayoutManager);
        recyclerView.setAdapter(mAdapter);
        loadVisitas();
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        // Associate searchable configuration with the SearchView
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        searchView = (SearchView) menu.findItem(R.id.search)
                .getActionView();
        searchView.setSearchableInfo(searchManager
                .getSearchableInfo(getComponentName()));
        searchView.setMaxWidth(Integer.MAX_VALUE);
        // listening to search query text change
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                // filter recycler view when query submitted
                mAdapter.getFilter().filter(query);
                return false;
            }
            @Override
            public boolean onQueryTextChange(String query) {
                // filter recycler view when text is changed
                mAdapter.getFilter().filter(query);
                return false;
            }
        });
        return true;
    }
    @Override
    public void onVisitasSelected(Visitas visitas) {
        Toast.makeText(getApplicationContext(), "Selected: " + visitas.getDestino() + ", " + visitas.getTurmas(), Toast.LENGTH_LONG).show();
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        //noinspection SimplifiableIfStatement
        if (id == R.id.search) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    @Override
    public void onBackPressed() {
        // close search view on back button pressed
        if (!searchView.isIconified()) {
            searchView.setIconified(true);
            return;
        }
        super.onBackPressed();
    }
}

更新

菜单小部件

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      tools:context=".VisitasActivity">
    <item
            android:id="@+id/search"
            android:title="@string/app_name"
            android:icon="@drawable/ic_near_me"
            app:showAsAction="ifRoom|collapseActionView"
            app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

更新日志猫

    06-20 11:54:33.655 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: ViewPostIme pointer 0
06-20 11:54:33.794 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: ViewPostIme pointer 1
06-20 11:54:33.887 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x1 surface={valid=true 524114235392} changed=false
06-20 11:54:33.896 30067-30067/gmc.aessm V/InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@c7c0cc0 nm : gmc.aessm ic=null
06-20 11:54:33.896 30067-30067/gmc.aessm I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
06-20 11:54:36.018 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: ViewPostIme pointer 0
06-20 11:54:36.129 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: ViewPostIme pointer 1
06-20 11:54:36.336 30067-30153/gmc.aessm I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
    (HTTPLog)-Static: isSBSettingEnabled false
06-20 11:54:36.351 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: setView = DecorView@c21ec87[VisitasActivity] TM=true MM=false
06-20 11:54:36.354 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0
06-20 11:54:36.366 30067-30067/gmc.aessm V/InputMethodManager: Not IME target window, ignoring
06-20 11:54:36.367 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: dispatchAttachedToWindow
06-20 11:54:36.381 30067-30067/gmc.aessm V/Surface: sf_framedrop debug : 0x4f4c, game : false, logging : 0
06-20 11:54:36.382 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: Relayout returned: old=[0,0][0,0] new=[0,0][1080,1920] result=0x7 surface={valid=true 524047654912} changed=true
06-20 11:54:36.390 30067-30090/gmc.aessm D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000,  [1080x1920]-format:1
06-20 11:54:36.390 30067-30090/gmc.aessm D/OpenGLRenderer: eglCreateWindowSurface = 0x7a01598aa0
06-20 11:54:36.413 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: MSG_RESIZED_REPORT: frame=Rect(0, 0 - 1080, 1920) ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1
    MSG_WINDOW_FOCUS_CHANGED 1
06-20 11:54:36.419 30067-30067/gmc.aessm V/InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@ec5994c nm : gmc.aessm ic=null
06-20 11:54:36.419 30067-30067/gmc.aessm I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
06-20 11:54:36.452 30067-30090/gmc.aessm D/OpenGLRenderer: eglDestroySurface = 0x7a11b6b850
06-20 11:54:36.462 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x5 surface={valid=false 0} changed=true
06-20 11:54:36.498 30067-30072/gmc.aessm I/zygote64: Compiler allocated 8MB to compile void android.view.ViewRootImpl.performTraversals()
06-20 11:54:36.747 30067-30072/gmc.aessm I/zygote64: Do full code cache collection, code=252KB, data=194KB
    After code cache collection, code=248KB, data=163KB
06-20 11:54:36.804 30067-30072/gmc.aessm I/zygote64: Do partial code cache collection, code=252KB, data=177KB
    After code cache collection, code=252KB, data=177KB
    Increasing code cache capacity to 1024KB
06-20 11:54:36.902 30067-30067/gmc.aessm D/ViewRootImpl@d37e285[MainActivity]: Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x1 surface={valid=false 0} changed=false
06-20 11:55:06.133 30067-30067/gmc.aessm V/InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@a776755 nm : gmc.aessm ic=null
06-20 11:55:06.133 30067-30067/gmc.aessm I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
06-20 11:55:11.238 30067-30090/gmc.aessm D/OpenGLRenderer: eglDestroySurface = 0x7a01598aa0
06-20 11:55:11.265 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x5 surface={valid=false 0} changed=true
06-20 11:55:11.266 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: MSG_WINDOW_FOCUS_CHANGED 0
06-20 11:55:11.310 30067-30067/gmc.aessm D/ViewRootImpl@988e4c6[VisitasActivity]: Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x1 surface={valid=false 0} changed=false

更新应用图像

主活动

[!在此处输入图像描述][1]][1]

访问活动(搜索视图应显示的位置(

[!在此处输入图像描述][2]][2]

使用此代码,我的搜索视图没有显示,我无法使用过滤器小部件

有什么帮助吗?

谢谢

在菜单中.xml替换

app:showAsAction="ifRoom|collapseActionView"

app:showAsAction="always"

编辑:-在活动中充main_layout.xml。因为工具栏在里面main_layout而不是在回收商Vie的xml中。

setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle("Search");

获取工具栏 ID 并将其传递到setSupportActionBar

相关内容

  • 没有找到相关文章

最新更新