我想创建一个布局,其中有两个栏,一个在顶部,另一个在底部,并且这两个栏之间有一个列表视图,但问题是,在顶部和底部栏之间,我需要显示列表项目的顶部和底部栏都在其位置,只有列表视图可以滚动。
下面是我的xml布局,对于冗长的问题感到抱歉,任何建议都将不胜感激。感谢
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
style="@android:style/ButtonBar"
>
<ImageButton
android:id="@+id/IBADDNEW"
android:layout_width="62dp"
android:layout_height="62dp"
android:src="@drawable/ad_user_l" />
<EditText
android:id="@+id/ETSEARCHTEXT"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<requestFocus />
</EditText>
<ImageButton
android:id="@+id/IBSEARCH"
android:layout_width="62dp"
android:layout_height="62dp"
android:src="@drawable/search_64" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fillViewport="true"
>
<LinearLayout
android:id="@+id/LLforList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity ="center_vertical"
android:orientation="horizontal" >
<ImageView
android:id="@+id/IVimageIcon"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_farmer" />
<TextView
android:id="@+id/TVFLNAME"
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="Some Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</ScrollView>
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/blankbarbottom"
android:layout_alignParentBottom="true" >
<LinearLayout
android:id="@+id/FLlayoutLIst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal" >
<ImageView
android:id="@+id/btnMainMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/mainmenu_on" />
<ImageView
android:id="@+id/btnSettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/settings_off" />
<ImageButton
android:id="@+id/btnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/exit_off" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
为列表使用ListView。它可滚动,因此您不需要ScrollView。有关如何使用带适配器的简单ListView,请参阅http://developer.android.com/resources/tutorials/views/hello-listview.html。
你还应该为你的标签使用TabHost。看看http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
答案 1 :(得分:1)
您可以创建一个要添加为ListView的Header
和Footer
的布局,然后将它们添加到ListView,
View header = getLayoutInflater().inflate(R.layout.header, null);
View footer = getLayoutInflater().inflate(R.layout.footer, null);
ListView listView = getListView();
listView.addHeaderView(header);
listView.addFooterView(footer);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice,
android.R.id.text1, names));
答案 2 :(得分:0)
ithink你可以使用listView.addheadview和listView.addrootview 编辑:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_alignParentTop="true"
android:layout_height="36dip"
android:orientation="horizontal"
android:background="@drawable/cloth_xixian_bg"
android:id="@+id/headclothesroom">
<Button android:id="@+id/redianroom"
android:layout_width="100dip"
android:layout_height="36dip"
android:layout_marginLeft="40dip"
android:background="@null"
android:textSize="18sp"
android:textColor="@drawable/color_wenzi_bg"
android:text="热点排行"/>
<Button android:id="@+id/liangyiroom"
android:layout_width="100dip"
android:layout_height="36dip"
android:textColor="@drawable/color_wenzi_bg"
android:textSize="18sp"
android:background="@null"
android:layout_marginLeft="25dip"
android:text="我的靓衣间" />
<Button android:id="@+id/preButton"
android:layout_width="90dip"
android:layout_height="46dip"
android:layout_alignParentLeft="true"
android:layout_marginLeft="9dip"
android:text="前页"
android:layout_marginTop="1dip"
android:background="@drawable/btn_default"
android:textColor="#FFFFFF"
/>
<Button android:id="@+id/midchoth"
android:layout_width="90dip"
android:layout_height="46dip"
android:layout_marginLeft="12dip"
android:background="@drawable/btn_default"
android:layout_marginTop="1dip"
android:textColor="#FFFFFF"
android:visibility="invisible"
android:text="继续"
/>
<Button android:id="@+id/backbu"
android:layout_width="90dip"
android:layout_height="46dip"
android:layout_marginLeft="12dip"
android:background="@drawable/btn_default"
android:layout_marginTop="1dip"
android:textColor="#FFFFFF"
android:text="后页"
/>
</LinearLayout>
答案 3 :(得分:0)
您需要为ListView项目充气xml。使用以下代码创建新的xml说inflate.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="5dp" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:src="@drawable/icon" >
</ImageView>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" >
</TextView>
</LinearLayout>
现在,您的活动类使用ListActivity扩展它,并执行此操作
创建字符串数组说“items”,其中包含多个“First L Name”,如白色屏幕中所示,如
String[] items = {"First L Name","First L Name","First L Name"};
然后,
setContentView(R.layout.main);
setListAdapter(new NewListAdapter(this));
使用ArrayAdapter等任何适配器扩展NewListAdapter类并执行此操作
class NewListAdapter extends ArrayAdapter {
Activity context;
NewListAdapter(Activity context) {
super(context, R.layout.inflate,items);
this.context=context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View row = inflater.inflate(R.layout.inflate, null);
TextView lblName = (TextView) row.findViewById(R.id.textView1);
lblName.setText(items[position]);
return (row);
}
}
现在运行你的代码,看看神奇......
答案 4 :(得分:0)
我这样做,我自己就是这个事业的确切解决方案,
在layour中我添加了一个listView
<ListView
android:id="@+id/LVfarmerList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ListView>
取代
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fillViewport="true"
>
<LinearLayout
android:id="@+id/LLforList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity ="center_vertical"
android:orientation="horizontal" >
<ImageView
android:id="@+id/IVimageIcon"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_farmer" />
<TextView
android:id="@+id/TVFLNAME"
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="Some Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</ScrollView>
并创建了另一个布局
<LinearLayout
android:id="@+id/LLforList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity ="center_vertical"
android:orientation="horizontal" >
<ImageView
android:id="@+id/IVimageIcon"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_farmer" />
<TextView
android:id="@+id/TVFLNAME"
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="Some Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
现在创建了一个Activity(而不是listActivity)
其中我展示了布局,其中包含顶部和底部栏之间的列表视图。
并使用另一个布局创建了一个customAdapter,该布局有一个imageview和textview。
通过listview.setAdapter,将此适配器添加到列表视图中,它对我有用。