2012-04-13 6 views
0

誰でも私にGalleryListVviewに埋め込む方法を教えてもらえますか?ListView内の画像に水平スクロールができますか?ギャラリーをリストビューに埋め込む?

+1

'ListView'の中に' Gallery'を置くことはできません。 – adneal

+0

ya私はあなたに同意しています...私にはそれのための解決策、どのように同じものを達成するために私の電話になります...私のすべてのデータは動的です。 – KKC

答えて

0

Listviewが必要ですか?おそらく、あなたはLinearLayout(垂直)をScrollViewの中に置くことができますか?

+0

私は線形レイアウトとスクロールビューを使用しようとしましたが、私の要求には役に立たない...実際に私はフィードからデータを取っているので、すべてのものが動的です。 – KKC

+0

私は複雑なレイアウト要件のためにListViewを使用して成功したことは一度もありませんでした。 ScrollViewとLinearLayoutを使用してデータを保持する方がより柔軟であることがわかりました。このアプローチを使用すると、通常どおりにアダプターを使用することはできませんが、一度独自のデータ処理を実装すると、コードレイアウトの問題が処理しやすくなります。 –

+0

あなたの提案に感謝します。私はあなたに完全に同意したと言いました。しかし、私のデータは動的ですから、どのくらいのデータが来るのか分かりません。リストビューについて考えましたが、同じことをする。 – KKC

3

投稿を確認してください。this投稿、それは私のために働いた。次のように

私のセットアップは次のとおりです。

  • 私はListActivityを持っているデータを移入するArrayAdapterを使用します。
  • 私のXMLリソースlist_itemには、ImageView、TextView、およびGalleryが含まれています。
  • 私は(あなたは、通常のリスト項目のクリックを処理するために同じように。)行にOnClickListenerを追加
  • その後、私は私が私が
  • をスワイプ扱うギャラリーにGestureListenerを追加ギャラリー
  • ためのアダプタを設定

    private static final int SWIPE_MAX_OFF_PATH = 250; 
    private GestureDetector gestureDetector; 
    private OnTouchListener gestureListener; 
    private Gallery picGallery; 
    
    ... 
    
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    
        View row = convertView; 
    
        /* Holder pattern here, commented out for clarity */ 
    
        // We need to set the onClickListener here to make sure that 
        // the row can also be clicked, in addition to the gallery photos 
        row.setOnClickListener(new MyOnClickListener(context,position)); 
    
        // Set the adapter for the gallery 
        picGallery = (Gallery) row.findViewById(R.id.gallery); 
        picGallery.setAdapter(
           new MyGalleryAdapter(/* some input data here to populate the gallery */)); 
    
        // GestureDetector to detect swipes on the gallery 
        gestureDetector = new GestureDetector(new MyGestureDetector()); 
        gestureListener = new View.OnTouchListener() { 
         public boolean onTouch(View v, MotionEvent event) { 
          return gestureDetector.onTouchEvent(event); 
         } 
        }; 
    
        // Detect clicking an image 
        picGallery.setOnItemClickListener(new MyOnItemClickListener(context)); 
    
        // Detect swipes 
        picGallery.setOnTouchListener(gestureListener); 
    
        return row; 
    } 
    
    ... 
    
    private class MyGestureDetector extends SimpleOnGestureListener { 
        @Override 
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
         try { 
          if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
           return false; 
         } catch (Exception e) { 
          // nothing 
         } 
         return false; 
        } 
    
    } 
    
    ... 
    
    private class MyOnItemClickListener implements OnItemClickListener{  
        private Context context; 
    
        public MyOnItemClickListener(Context context){ 
         this.context = context; 
        } 
    
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, 
          long id) { 
         Intent intent = new Intent(context, PhotoDetailActivity.class); 
         intent.putExtra("id", id); 
         context.startActivity(intent); 
    
        } 
    
    } 
    
    :私は次のようん私のArrayAdapter

ギャラリーに画像をクリックして処理するためにギャラリーにOnItemClickListenerを追加

関連する問題