2011-09-29 5 views
3

내가 원하는 것은 gridview가 전체 화면을 채우는 것입니다. 그리고 그것을 아래로 스크롤하면 결국 2 개의 버튼이있는 레이아웃이 나타납니다. Ive는 그것을 읽었고 couldnt하는 방법을 이해한다. 화면 상단과 하단 (gridview 이상)에서 수정할 수 있습니다. 또한 gridview가 채워질 때도 단추가있는 레이아웃을 표시하지 마십시오.Android : gridview의 맨 아래에있는 레이아웃

필자는 무게, 정렬 등으로 경기를 해왔습니다.하지만 잘못된 것을 발견하지 못합니다. 을 heres XML :의 GridView 아래

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/fondo"> 
    <GridView android:layout_width="fill_parent" 
     android:id="@+id/gridView1" 
     android:layout_height="wrap_content" 
     android:numColumns="2" 
     android:listSelector="#00000000"> 
    </GridView> 
    <LinearLayout android:id="@+id/linearLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal" 
     android:layout_below="@id/gridView1"> 
     <ImageView android:id="@+id/botonAtras" 
      android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:layout_weight="1" 
     android:onClick="onBotonAtrasClick"> 
    </ImageView> 
    <ImageView android:id="@+id/botonAdelante" 
     android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:layout_weight="1" 
     android:onClick="onBotonAdelanteClick"> 
    </ImageView> 
    </LinearLayout> 
</RelativeLayout> 
+0

비슷한 내용보기 : http://stackoverflow.com/questions/8876596/need-to-create-footer-for-gridview-in-android. 차이점은 다른 질문은 버튼에 관한 것이고이 질문은 레이아웃에 관한 것입니다. –

답변

-1

세트의 LinearLayout 안드로이드 설정하여 : layout_below을 "@ + ID/GRIDVIEW"ID 내부 /있는 LinearLayout이

+1

필자는 이것을 가지고 노는 것이었고 어떻게 할 수 있는지 발견하지 못했습니다. 내가 할 수있는 일은 화면 맨 아래에 나타나는 것입니다. 그러나 gridview 아래 아닙니다. – Duqe

+0

GridView가 화면을 채우기에 충분한 요소를 가지면 GridView는 아래쪽 레이아웃을 "삼켜 버립니다". –

-1

내가 이런 식으로이 문제를 해결 :

<LinearLayout 
     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_height="wrap_content" 
     android:layout_weight="1" 
     android:fillViewport="true" > 
     <GridView 
      android:id="@+id/myGrid" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:columnWidth="60dp" 
      android:gravity="center" 
      android:horizontalSpacing="10dp" 
      android:numColumns="3" 
      android:padding="10dp" 
      android:stretchMode="columnWidth" 
      android:verticalSpacing="10dp" /> 
    </LinearLayout> 

    <Button 
     android:id="@+id/bacth_button" 
     android:layout_width="fill_parent" 
     android:layout_height="50dip" 
     android:layout_alignParentBottom="true" 
     android:layout_marginLeft="2dip" 
     android:layout_marginRight="2dip" 
     android:layout_marginTop="2dip" 
     android:text="Uninstall Selected Apps" 
     android:textColor="#000000" 
     android:textSize="16dip" 
     android:textStyle="bold" /> 
</LinearLayout> 

linearlayout에 GridView를 포함 시키면 원하는대로 작업 할 수 있습니다.

1

내가 알 수있는 한 쉽게 이것을 할 수 없다. addFooter()을 사용하여 일반 ListView으로 처리 할 수 ​​있지만 슬프게도 GridView에는이 방법이 없습니다. 또한 많은 private API를 사용하기 때문에 자신의 GridView을 구현할 수 없습니다. Android Pull to refresh

은 분명히이 헤더보기가 포함 된 LinearLayoutListView 사용하고 둘 다 이동 :

그러나 일을 생각하고 여기에 사용 된 끔찍한 해킹이있다. (this page에 따르면.) 그 사람이 말했듯이, 끔찍한 끔찍한 해킹에 대한 많은 작업.

내가 할 수있는 유일한 방법은 GridView을 포기하고 각 행이 수평 LinearLayoutListView을 사용하는 것입니다. 그래도 여전히 매우 해킹.