2012-05-16 9 views
4

안드로이드 마켓의 첫 페이지와 같은 레이아웃을 만들고 싶습니다. 다른 크기 및 위치로 imageview를 넣으려는 경우 gridlayout을 사용하려고합니다. scrollview도 입력해야합니다.Gridlayout + ScrollView

실제로 내 문제는 android.support.v7.widget.GridLayout 안에 scrollview를 입력하는 방법입니다.

I've 시도 :

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.astuetz.viewpager.extensions.example" 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:columnCount="10" > 

    <ImageView 
     android:id="@+id/ImageView1" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="1" 
     android:src="@drawable/tab_background_focused" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:layout_column="5" 
     app:layout_gravity="bottom" 
     app:layout_row="1" 
     android:ems="10" > 

     <requestFocus /> 
    </EditText> 

    <ImageView 
     android:id="@+id/ImageView2" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="1" 
     app:layout_columnSpan="3" 
     app:layout_gravity="left" 
     app:layout_row="2" 
     android:src="@drawable/tab_background_focused" /> 

    <ImageView 
     android:id="@+id/ImageView3" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="4" 
     app:layout_rowSpan="2" 
     android:src="@drawable/tab_background_focused" android:adjustViewBounds="true"/> 

    <ImageButton 
     android:id="@+id/imageButton1" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="7" 
     android:src="@drawable/background_dots" /> 


    <ImageView 
     android:id="@+id/imageView4" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="9" android:adjustViewBounds="true" android:src="@drawable/tab_background"/> 


    <ImageView 
     android:id="@+id/imageView5" 
     android:layout_width="130dp" 
     android:layout_height="match_parent" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="9" 
     android:adjustViewBounds="true" /> 

    <ImageView 
     android:id="@+id/imageView6" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="9" android:adjustViewBounds="true"/> 

     <ImageView 
     android:id="@+id/imageView7" 
     android:layout_width="130dp" 
     android:layout_height="130dp" 
     app:layout_column="2" 
     app:layout_gravity="left" 
     app:layout_row="2" /> 


    <android.support.v7.widget.Space 
     android:id="@+id/space1" 
     android:layout_width="145dp" 
     android:layout_height="1dp" 
     app:layout_column="0" 
     app:layout_gravity="left" 
     app:layout_row="0" /> 

    <android.support.v7.widget.Space 
     android:layout_width="1dp" 
     android:layout_height="21dp" 
     app:layout_column="0" 
     app:layout_row="0" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space2" 
     android:layout_width="1dp" 
     android:layout_height="127dp" 
     app:layout_column="0" 
     app:layout_gravity="left" 
     app:layout_row="1" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space3" 
     android:layout_width="10dp" 
     android:layout_height="1dp" 
     app:layout_column="0" 
     app:layout_gravity="left" 
     app:layout_row="0" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space4" 
     android:layout_width="1dp" 
     android:layout_height="10dp" 
     app:layout_column="0" 
     app:layout_gravity="left" 
     app:layout_row="1" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space5" 
     android:layout_width="44dp" 
     android:layout_height="1dp" 
     app:layout_column="3" 
     app:layout_gravity="left" 
     app:layout_row="0" /> 

    <android.support.v7.widget.Space 
     android:layout_width="1dp" 
     android:layout_height="58dp" 
     app:layout_column="0" 
     app:layout_row="5" /> 

    <android.support.v7.widget.Space 
     android:layout_width="1dp" 
     android:layout_height="10dp" 
     app:layout_column="0" 
     app:layout_row="3" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space6" 
     android:layout_width="1dp" 
     android:layout_height="17dp" 
     app:layout_column="0" 
     app:layout_gravity="left" 
     app:layout_row="6" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space7" 
     android:layout_width="238dp" 
     android:layout_height="1dp" 
     app:layout_column="4" 
     app:layout_gravity="left" 
     app:layout_row="0" /> 

    <android.support.v7.widget.Space 
     android:id="@+id/space8" 
     android:layout_width="1dp" 
     android:layout_height="16dp" 
     app:layout_column="0" 
     app:layout_gravity="left" 
     app:layout_row="8" /> 

    <android.support.v7.widget.Space 
     android:layout_width="26dp" 
     android:layout_height="1dp" 
     app:layout_column="2" 
     app:layout_row="0" /> 

</android.support.v7.widget.GridLayout> 
</ScrollView> 

를이 코드에서, 결국 서로를 덮어 쓸 이미지 뷰 시작합니다.

+0

하시기 바랍니다 .. 해달라고 할이 ... 그 답을 확인 : [http://stackoverflow.com/questions/2033296/android-scrollview-problem][1] [1] : HTTP : //stackoverflow.com/questions/2033296/android-scrollview-problem –

답변

7

이 문제를 해결하려면 선형 레이아웃 구조를 유지하고이 내부에 gridlayout을 추가하고 layout_height = "the_value_you_need"를 설정해야합니다. 이렇게 :

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" xmlns:app="http://schemas.android.com/apk/res/com.astuetz.viewpager.extensions.example"> 




    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 



     <android.support.v7.widget.GridLayout 
      android:layout_width="match_parent" 
      android:layout_height="900dp" > 

      <ImageView 
       android:id="@+id/imageView1" 
       android:layout_width="130dp" 
       android:layout_height="130dp" 
       app:layout_column="0" 
       app:layout_columnSpan="2" 
       app:layout_gravity="left" 
       app:layout_row="0" 
       app:layout_rowSpan="2" 
       android:src="@drawable/tab_background_pressed" /> 

      <ImageView 
       android:id="@+id/imageView2" 
       android:layout_width="130dp" 
       android:layout_height="130dp" 
       app:layout_column="0" 
       app:layout_gravity="right" 
       app:layout_row="3" 
       android:src="@drawable/tab_background_pressed" /> 

      <ImageView 
       android:id="@+id/imageView3" 
       android:layout_width="130dp" 
       android:layout_height="130dp" 
       app:layout_column="0" 
       app:layout_gravity="left" 
       app:layout_row="5" 
       android:src="@drawable/tab_background_pressed" /> 

      <ImageView 
       android:id="@+id/imageView4" 
       android:layout_width="130dp" 
       android:layout_height="130dp" 
       app:layout_column="0" 
       app:layout_gravity="left" 
       app:layout_row="7" 
       android:src="@drawable/tab_background_pressed" /> 

      <ImageView 
       android:id="@+id/imageView5" 
       android:layout_width="130dp" 
       android:layout_height="130dp" 
       app:layout_column="0" 
       app:layout_gravity="left" 
       app:layout_row="7" 
       android:src="@drawable/tab_background_pressed" /> 

      <android.support.v7.widget.Space 
       android:layout_width="32dp" 
       android:layout_height="1dp" 
       app:layout_column="0" 
       app:layout_row="0" /> 

      <android.support.v7.widget.Space 
       android:id="@+id/space1" 
       android:layout_width="1dp" 
       android:layout_height="16dp" 
       app:layout_column="0" 
       app:layout_gravity="left" 
       app:layout_row="2" /> 

      <android.support.v7.widget.Space 
       android:id="@+id/space2" 
       android:layout_width="1dp" 
       android:layout_height="16dp" 
       app:layout_column="0" 
       app:layout_gravity="left" 
       app:layout_row="4" /> 

      <android.support.v7.widget.Space 
       android:id="@+id/space3" 
       android:layout_width="1dp" 
       android:layout_height="16dp" 
       app:layout_column="0" 
       app:layout_gravity="left" 
       app:layout_row="6" /> 
     </android.support.v7.widget.GridLayout> 

    </LinearLayout> 


</ScrollView> 

수평 스크롤을 사용하려면 layout_widht를 고정 값으로 변경하십시오.