2013-06-13 60 views
2

我有一個要求: enter image description hereGridView中的中心元素如何?

我有這樣一個佈局:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/relativelayout" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" 
       android:background="@drawable/category_bg"> 

    <RelativeLayout 
      android:id="@+id/headerlinearlayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:background="@drawable/category_header" 

      > 

     <ImageView 
       android:id="@+id/logosmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/logo_small" 
       android:layout_marginLeft="10dp" 
       android:layout_centerVertical="true" 

       /> 

     <TextView 
       android:id="@+id/textview" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="A Cafe With Arabian Food" 
       android:layout_marginLeft="10dp" 
       android:layout_gravity="center" 
       android:textSize="11pt" 
       android:textColor="@color/white" 
       android:layout_toRightOf="@+id/logosmall" 
       android:layout_centerVertical="true" 
       /> 

     <TextView 
       android:id="@+id/choosetxtview" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Choose a Category" 
       android:textColor="@color/white" 
       android:textSize="11pt" 
       android:layout_marginLeft="10dp" 
       android:layout_gravity="center" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="10dp" 
       /> 
    </RelativeLayout> 
    <!-- <LinearLayout 


     android:id="@+id/textlayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/headerlinearlayout" 
     android:gravity="center" 
     android:layout_marginTop="5dp" 
     > 


    </LinearLayout> --> 

    <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 

      android:layout_above="@+id/footerlinearlayout" 
      android:layout_marginTop="5dip" 
      android:layout_below="@+id/headerlinearlayout" 
      android:layout_marginBottom="5dip"> 

     <GridView 
       android:id="@+id/gridview" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:columnWidth="120dip" 

       android:horizontalSpacing="20dp" 
       android:numColumns="3" 
       android:paddingTop="5dip" 
       android:scrollbars="none" 
       android:stretchMode="columnWidth" 
       android:gravity="center" 
       android:listSelector="@android:color/transparent" 
       android:cacheColorHint="@android:color/transparent" 
       android:verticalSpacing="20dp"/> 

    </LinearLayout> 


    <RelativeLayout 
      android:id="@+id/footerlinearlayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:background="@drawable/category_footer" 
      android:layout_alignParentBottom="true" 

      > 

     <ImageButton 
       android:id="@+id/backbtn_iv" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/backbtn" 
       android:layout_marginLeft="10dp" 
       android:layout_gravity="center" 
       android:layout_centerVertical="true" 
       /> 

     <ImageButton 
       android:id="@+id/homebtn_iv" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_gravity="center" 
       android:layout_marginLeft="30dp" 
       android:layout_toRightOf="@+id/backbtn_iv" 
       android:background="@drawable/homebtn"/> 


     <ImageButton 
       android:id="@+id/helpbtn_iv" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:layout_gravity="center" 
       android:layout_centerVertical="true" 
       android:background="@drawable/helpbtn" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="80dp" 

       /> 


     <ImageView 
       android:id="@+id/iv_poweredby" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/powerd_by"/> 


    </RelativeLayout> 


</RelativeLayout> 

的迴應是: enter image description here

請幫助我曾嘗試很多事情。

+0

歡迎使用線性佈局代替網格視圖的答案? – deadfish

+0

@Rajiv yadav你找出解決方案嗎? – FiXiT

+0

同樣的問題在這裏,你找到解決方案嗎? –

回答

0

您可以通過使用TableRow的layout_span屬性來實現此目的。只是在TableRow

你也可以做到這一點編程這樣子元素添加

android:layout_span="2" 

..

//theChild in this case is the child of TableRow 
TableRow.LayoutParams params = (TableRow.LayoutParams) theChild.getLayoutParams(); 
params.span = 2; //amount of columns you will span 
theChild.setLayoutParams(params); 

希望這有助於...

0

與GridView的處理是真的頭痛,如果你不想使用TableLayout和TableRow,很難獲得你的佈局。 你的問題類似於another question here at StackOverflow,我已經回答了。

我的想法是「強制」GridView具有精確的寬度,即列寬的總和,例如:您可以獲取構成網格的ImageView的寬度和多個寬度*列。然後,您可以通過LayoutParams以編程方式將總寬度設置爲您的GrdiView。