2017-03-24 5 views
0

gridlayout内に10個のimageviewsがあります.5個のイメージビューの後に次の行に移動します。画像ビューの視界がなくなった、それは再構成する必要がありますimageviewsの数に依存しますが、それは消えたビューのスペースを示している問題!レイアウトの内容を再構成する方法は、内部のビュー数によって異なります。

これは私が欲しいものを私のXMLコード

<GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:columnCount="5" 
     android:layout_marginLeft="5dp" 
     android:orientation="horizontal"> 

     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:tint="@color/brown" 
      android:id="@+id/ivImage1" 
      android:background="@color/brown"/> 

     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:visibility="gone" 
      android:id="@+id/ivImage2" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 

     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage3" 
      android:visibility="gone" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 


     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage4" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 

     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:id="@+id/ivImage5" 
      android:background="@color/brown" 
      android:layout_margin="5dp" 
      android:tint="@color/brown"/> 



     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage6" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 

     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:visibility="gone" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage7" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 



     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage8" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 

     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:visibility="gone" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage9" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 
     <ImageView 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_margin="5dp" 
      android:id="@+id/ivImage10" 
      android:background="@color/brown" 
      android:tint="@color/brown"/> 


    </GridLayout> 

ある他のビューを行っビューのいくつかは、それの場所を取る必要がある場合で、私の質問は事前

+1

はあなたにコンテンツを追加しているとして、アダプタを作成します

gv_photosGrid = (GridView) rootView.findViewById(R.id.gv_photosGrid); gv_photosGrid.setAdapter(adapter); 

としてArrayListのGridViewのInitailise

<GridView android:id="@+id/gv_photosGrid" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:horizontalSpacing="3dp" android:numColumns="5" android:stretchMode="columnWidth" android:verticalSpacing="3dp" /> 

のグリッドこのようなビューと設定した画像を使用して、あなたのプログラムでグリッド?つまり、グリッドにデータを挿入するために繰り返し処理する配列はありますか? – Rob

+0

@robいいえ私は実際には、すべての画像ビューを消したいと思っています。コードの中にはいくつかのコードで表示されるものもありますが、今のところ私はちょうどそれらのいくつかを行ったが、それは私が思ったように見えない、プログラムでそれを行うための別の方法があるなら私は知らない? –

+1

グリッドビューを使用すると、それ自体が管理され、必要に応じてカウントが設定されますので、簡単に扱うことができます。 – g7pro

答えて

2

public class Adapter extends BaseAdapter { 
    Context context; 
    LayoutInflater laytout_inflator; 
    ArrayList<String> list = new ArrayList<>(); 


    public Adapter(Context _context, ArrayList<String> list) { 
     context = _context; 
     this.list = list; 
     laytout_inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public int getCount() { 
     return list.size(); 
    } 

    @Override 
    public Object getItem(int arg0) { 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     return 0; 
    } 

    @Override 
    public View getView(final int possition, View arg1, ViewGroup arg2) { 
     ViewHolder view_holder = new ViewHolder(); 
     if (arg1 == null) { 
      arg1 = laytout_inflator.inflate(R.layout.template, null); 
      view_holder = intitViews(arg1); 
      arg1.setTag(view_holder); 
     } else { 
      view_holder = (ViewHolder) arg1.getTag(); 
     } 
//  view_holder.iv_photo.setImage 

     return arg1; 
    } 

    public ViewHolder intitViews(View view) { 
     ViewHolder view_holder = new ViewHolder(); 
     view_holder.iv_photo = (ImageView) view.findViewById(R.id.iv_userLogo);] 
     return view_holder; 
    } 

    public static class ViewHolder { 
     ImageView iv_photo; 
    } 
} 
+1

配列リストのすべての色を設定し、リストオブジェクトとしてリストに渡す必要があります – g7pro

+0

私はあなたlitteIビットを取得didnt、私はあなたのコードを使用し、その作業はうまくいきますが、arraylistのサイズの数と配列のリストがタイプ文字列のコードに繰り返されていますか?私はそれを変更する必要がありますか?私はイメージをどのように設定するのですか? –

+0

私はそれを解決する、今私はあなたの助けてくれてありがとう、私は型整数でarraylistを置くとgetViewメソッドの画像を設定する –

2

利用のGridViewで明らか のおかげであると思いますGridLayoutおよびUseの代わりに:ImageView.setVisibilty(View.GONE);

+0

ImageViewをxmlの中にGridviewの中に追加する方法はありえないと思いますか? –

+2

いいえイメージビューを追加するためにjavaのアダプタを使用することはできません –

関連する問題