2017-05-02 7 views
0

ListViewコントロールがのLinearLayout内でスクロールされていないアンドロイドにスクロールされていません。次に、ScrollViewを追加し、ListViewを含むLinearLayoutを配置します。しかし、私のコードはまだ動作していません。ここに私の完全なXMLコード...ListViewコントロールは

bottom_content_geofence_show.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/des_cardview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="20dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="20dp" 
     app:cardBackgroundColor="@color/cardview_dark_background"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" 
      android:paddingBottom="12dp" 
      android:paddingStart="20dp" 
      android:paddingTop="12dp"> 


      <TextView 
       android:id="@+id/textView16" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Type of Geofence is Polygon" 
       android:textAllCaps="true" /> 

      <TextView 
       android:id="@+id/created_by_textview" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Created By Anuradha" 
       android:textAllCaps="true" /> 

      <TextView 
       android:id="@+id/created_on_textview" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="CReated On 4 April, 2017" 
       android:textAllCaps="true" /> 
     </LinearLayout> 
    </android.support.v7.widget.CardView> 

    <android.support.v7.widget.CardView 
     android:id="@+id/enforce_detail_cardview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="20dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:paddingStart="20dp" 
     android:paddingTop="20dp" 
     app:cardBackgroundColor="@color/cardview_dark_background"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="300dp" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/enforce_textview" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="Enforced Assets" 
       android:textAlignment="viewStart" 
       android:textAllCaps="true" 
       android:textColor="@color/colorPrimary" 
       android:textSize="14sp" /> 

      <ListView 
       android:id="@+id/asset_list" 
       style="@style/Widget.AppCompat.ListView" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:divider="@color/White" 
       android:groupIndicator="@null" 
       android:overScrollMode="always" 
       android:smoothScrollbar="true" /> 
     </LinearLayout> 

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

は、このレイアウトはNestedScrollView

activity_show.xml

<android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_vertical" 
     android:fillViewport="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 


     <include layout="@layout/bottom_content_geofence_show" /> 
</android.support.v4.widget.NestedScrollView> 

の内側に表示されますしてくださいです可能な解決策を教えてください。前もって感謝します。

+0

you'rはNestedScrollView'が再び 'ScrollView'を使用していない'使用している場合。 – Piyush

+0

ok ScrollViewを削除します。しかし、どちらのシナリオも私にとっては同じです。リストビューのスクロールがscrollview – anuradha

+0

なし/ウィットに動作していない。そのことは、その部分のみにデータが表示されますので、高さを固定しています。チェックリストビューにデータを入力しますか? ListViewコントロールが含まれている私は私のコード.....取り外しスクロールビューとリストビューの固定の高さを更新してのLinearLayoutに固定の高さを追加した – Piyush

答えて

0

あなたはそれのためにお奨め解決策になるかもしれませんが、これを使用してみてください: - :それはスクロールしませんが、あなたの高さを修正するために起こっている

public static class Utility { 
     public static void setListViewHeightBasedOnChildren(ListView listView) { 
      ListAdapter listAdapter = listView.getAdapter(); 
      if (listAdapter == null) { 
       // pre-condition 
       return; 
      } 

      int totalHeight = 0; 
      for (int i = 0; i < listAdapter.getCount(); i++) { 
       View listItem = listAdapter.getView(i, null, listView); 
       listItem.measure(0, 0); 
       totalHeight += listItem.getMeasuredHeight(); 
      } 

      ViewGroup.LayoutParams params = listView.getLayoutParams(); 
      params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
      listView.setLayoutParams(params); 
     } 
    } 

- このメソッドを追加

  Utility.setListViewHeightBasedOnChildren(yourlistview); 

ListViewコントロールと

<ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     <include layout="@layout/bottom_content_geofence_show" /> 
</LinearLayout> 
0

使用ライブラリ下記のおshow.xmlでいくつかの変更、それは本当にリニアレイアウトで動作します。

compile 'com.github.paolorotolo:expandableheightlistview:1.0.0' 

使用方法:アクティビティ内

<ScrollView 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"> 

    <com.github.paolorotolo.expandableheightlistview.ExpandableHeightListView 
     android:id="@+id/expandable_listview" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="8dp"> 
    </com.github.paolorotolo.expandableheightlistview.ExpandableHeightListView></ScrollView> 

ExpandableHeightListView expandableListView = (ExpandableHeightListView) findViewById(R.id.expandable_listview); 

expandableListView.setAdapter(adapterName); 

// This actually does the magic 
expandableListView.setExpanded(true); 
関連する問題