web-dev-qa-db-ja.com

Android AppBarLayout overlistlistview

私はContentProviderで遊ぶ簡単なアプリを書いています、私はdb、ContentProvider、メインアクティビティ、ContentResolverを使用してContentProviderにコマンドを転送するクラスを持っています。 GUIでは、データベースに保存されているすべてのアイテムを表示したいだけです。私はこのプロジェクトを最初から作成し、アクティビティを作成すると、メインレイアウトにAppBarLayoutを含むCoordinatorLayoutがあり、それで問題ありません。ListViewを作成すると、AppBarLayoutがListViewと重なり、リストビューの最初の項目の下にあることを除き、すべてが機能しますAppBarLayoutによって非表示になっています。 enter image description here

ListViewにAndroid:layout_belowを使用しようとしましたが、機能しません。Android:layout_marginTopを使用すると、ListViewはAppBarLayoutの下にありますが、このソリューションは見つかりません。

AppBarLayoutの下にListViewを配置する簡単な方法はありませんか?

私のactivity_mainレイアウトの下:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout
    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"
    Android:background="@color/holo_light_background"
    Android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <Android.support.design.widget.AppBarLayout
        Android:id="@+id/bar"
        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="?attr/colorPrimary"
            Android:theme="@style/AppTheme.AppBarOverlay"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
    </Android.support.design.widget.AppBarLayout>


    <ListView
        Android:id="@+id/list"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_below="@id/bar"/>


    <Android.support.design.widget.FloatingActionButton ...>

    <Android.support.design.widget.FloatingActionButton ...>

</Android.support.design.widget.CoordinatorLayout>
17
OLee Csobert

単純な追加

app:layout_behavior="@string/appbar_scrolling_view_behavior"

あなたのListViewに

35
m.zander

別の方法は、ListViewの代わりにRecyclerViewを使用することです。確実に機能します........

[〜#〜]または[〜#〜]

使用する:

      if  (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) 
          {
               listView.setNestedScrollingEnabled(true);
          }

明らかにLollipopでのみ機能します。

0
Gagan Deep