需要显示项目列表,顶部和底部栏,

时间:2011-12-31 05:50:49

标签: android android-layout

我想创建一个布局,其中有两个栏,一个在顶部,另一个在底部,并且这两个栏之间有一个列表视图,但问题是,在顶部和底部栏之间,我需要显示列表项目的顶部和底部栏都在其位置,只有列表视图可以滚动。

下面是我的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>

5 个答案:

答案 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的HeaderFooter的布局,然后将它们添加到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,将此适配器添加到列表视图中,它对我有用。