2015-09-12 57 views
2

在下面的代碼中如何滾動不只是ListView,但所有的視圖與它?如果我正在添加完整頁面scrollview,則listview不顯示完整頁面。如何在佈局中添加完整的滾動視圖?

但頂層菜單應該是不變的。搜索按鈕內部我想滾動完整列表。

XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 


    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="60dp" 
     android:orientation="horizontal" 
     android:background="#027fdb" 
     android:id="@+id/linearlayout1"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="horizontal"> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:orientation="horizontal"> 
       <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="match_parent" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:gravity="center_vertical" 
        android:layout_marginLeft="10dp" 
        android:text="Contact -" 
        android:id="@+id/textView" /> 

      </LinearLayout> 



      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:orientation="horizontal"> 
       <TextView 
        android:id="@+id/txt_mylead_listcount" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:gravity="center_vertical" 
        android:layout_marginLeft="10dp" 
        android:layout_alignRight="@+id/textView" 
        /> 

      </LinearLayout> 

     </LinearLayout> 



     <LinearLayout 
      android:id="@+id/lin_symbols" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_centerVertical="true" 
      android:gravity="right" 
      android:layout_marginRight="20dp"> 

     <LinearLayout 
      android:id="@+id/lin_addmechines" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:gravity="right"> 

      <ImageView 
       android:id="@+id/img_addmachines" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/add_machine" 
       /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/lin_addmechines" 
      android:layout_gravity="center_vertical" 
      android:gravity="right" 
      android:layout_marginLeft="10dp"> 

      <ImageView 
       android:id="@+id/img_addfilter" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:src="@drawable/filter" 
       /> 
     </LinearLayout> 
     </LinearLayout> 


    </RelativeLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="20dp" 
     android:orientation="horizontal" 
     > 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:background="@drawable/search" 
      android:hint="  Search" 
      android:paddingLeft="5dp" 
      android:imeOptions="actionSearch" 
      android:inputType="text" 
      android:id="@+id/textSearch" 
      android:layout_below="@+id/textView" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/lin_contactPersons" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:layout_marginBottom="15dp"> 

     <ImageView 
      android:id="@+id/img_contactprs" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/contactprs" 
      /> 

    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dip" 
     android:background="#000000" /> 


    <ListView 
     android:id="@+id/users" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

</LinearLayout> 
+0

如果你添加**滾動查看** **列表視圖**然後你會得到滾動的問題,其中任何一個將滾動。那麼你必須爲他們使用**攔截**方法。 – Pankaj

+0

有沒有什麼辦法滾動完整 – care567

+1

你是什麼意思下滾動完整?你想整個頁面滾動與列表視圖?或者是什麼? – bendaf

回答

0

您應該複製的佈局,要與不同的佈局XML列表視圖滾動並把它放到列表視圖的頂部,一個不同的第一個項目。您可以使用自定義ListAdapter做到這一點:

//WARNING: I did not try this code, handle it like pseudocode 
private class MyCustomAdapter extends BaseAdapter { 

    private ArrayList<Item> mData = new ArrayList<>(); 
    private LayoutInflater mInflater; 

    public MyCustomAdapter() { 
     mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public void addItem(final Item item) { 
     mData.add(item); 
     notifyDataSetChanged(); 
    } 

    @Override 
    public int getCount() { 
     return mData.size() + 1; 
    } 

    @Override 
    public Item getItem(int position) { 
     return mData.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder = null; 
     if(position==0){ 
      //initialize your custom view 
     }else{ 
      //initialize a normal list item 
     } 
     return convertView; 
    } 
} 

檢查this ListAdapter例如,如果您還有問題!

0

使用此功能可以在滾動視圖上查看完整列表。

ListView listViewObject; 

// after binding list view. 
getListViewSize(listViewObject);// pass your listview object here. 


public void getListViewSize(ListView myListView) { 
    ListAdapter myListAdapter = myListView.getAdapter(); 
    if (myListAdapter == null) { 
     //do nothing return null 
     return; 
    } 
    //set listAdapter in loop for getting final size 
    int totalHeight = 0; 
    for (int size = 0; size < myListAdapter.getCount(); size++) { 
     View listItem = myListAdapter.getView(size, null, myListView); 
     listItem.measure(0, 0); 
     totalHeight += listItem.getMeasuredHeight(); 
    } 
    //setting listview item in adapter 
    ViewGroup.LayoutParams params = myListView.getLayoutParams(); 
    params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1)); 
    myListView.setLayoutParams(params); 
    // print height of adapter on log 
    Log.i("height of listItem:", String.valueOf(totalHeight)); 
} 

希望!它對你有幫助......