在下面的代码中如何滚动不仅仅是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 :(得分: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示例!
答案 1 :(得分: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));
}
希望!它对你有帮助......