开发者

android layout: how to write this one?

I want an activity with below layout:

top button
middle(scroll view)
bottom button

I want the bottom button to attach to the bottom of the activity view, and the middle part occupies the rest of the space.

How I can write the layout xml file?

Below doesn't work:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:focusable="true"
        android:focusableInTouchMode="true" android:layout_width="0px"
        android:layout_height="0px" />

    <LinearLayout android:orientation开发者_如何学编程="vertical"
        android:layout_width="fill_parent" android:weightSum="1" android:layout_height="wrap_content">

        <LinearLayout android:orientation="horizontal"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:weightSum="1">
            <EditText android:id="@+id/edit_search"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:lines="1" android:hint="发微博内容" android:layout_weight="0.9" />
            <Button android:layout_height="wrap_content" android:text="Search"
                android:layout_width="wrap_content" android:id="@+id/search_btn"
                android:layout_weight="0.1"></Button>
        </LinearLayout>

        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:id="@+id/TextView01"
            android:paddingTop="5dip" />
        <ListView android:layout_width="fill_parent"
            android:id="@+id/lv01" android:layout_height="390dp">
        </ListView>
        <Button android:id="@+id/create_new_btn" 
        android:layout_height="wrap_content" android:text="我要评论" android:layout_gravity="bottom"
        android:layout_width="fill_parent"></Button>
    </LinearLayout>

</LinearLayout>


For that case, just take a RelativeLayout, its better for this case and you don't need to take any sub-layout.

Just try this once and post your XML layout here for the further improvement.

From your xml layout code, i can assume, you just want to have:

EditText+Button=>Top, TextView+ListView=>Middle, Create New button=>Bottom,

is this the case?


Keep it simple, go with LinearLayout, and play with the weights:

<LinearLayout
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0">
  </Button>
  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1">
    <!-- Stuff in scroll view -->
  </ScrollView>  
  <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0">
  </Button>
</LinearLayout>


@ParashMayani is right..

Here is the implementation :

<LinearLayout android:focusable="true"
    android:focusableInTouchMode="true" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:id="@+id/relLayout" android:orientation="horizontal"  >



        <EditText android:id="@+id/edit_search"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:lines="1" android:hint="Hello" android:layout_weight="0.7"/>

            <Button android:layout_height="wrap_content" android:text="Search"
             android:layout_weight="0.3" android:layout_width="wrap_content" android:id="@+id/search_btn" />

    </LinearLayout>

    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:id="@+id/TextView01"
        android:paddingTop="5dip" android:layout_below="@id/relLayout"/>

      <Button android:id="@+id/create_new_btn" 
    android:layout_height="wrap_content" android:text="我要评论" android:layout_gravity="bottom"
    android:layout_width="fill_parent" android:layout_alignParentBottom="true"/>


    <ListView android:layout_width="fill_parent"
        android:id="@+id/lv01" android:layout_height="0dp" android:layout_above="@id/create_new_btn" android:layout_below="@id/TextView01" />


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <Button android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:layout_alignParentTop="true" android:layout_alignParentLeft="true"></Button>
    <Button android:id="@+id/button2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true"></Button>
    <ScrollView android:id="@+id/scrollView1" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_below="@+id/button1" android:layout_above="@+id/button2">
        <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="match_parent"></LinearLayout>
    </ScrollView>        
</RelativeLayout>

I think something like that would work. The important part in that layout is the android:layout_below and android:layout_above. You can replace the ScrollView with other layouts such as ListView and it will remain below the first button and above the second regardless of how big it gets. Likewise, the buttons have the attributes android:layout_alignParentTop="true" and android:layout_alignParentBottom="true" which will keep them to the top and the bottom of the RelativeView respectively.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜