2016-05-17 3 views
-2

ここに私の問題があります:画像の一部がGridLayoutに配置されると、それらの周りの他のアプリケーション画像が消えます。私は、ビューから他の画像を「押し出す」ような画像が本当に大きいことに気付きました。画像ボタンがGridLayoutでお互いに表示されたり削除されたりしない

+0

レイアウトを投稿するコードとレイアウトを投稿できますか?私は、アダプタに関するエラーメッセージが問題を示しているとは思わない。 – Cheticamp

+0

@Cheticamp Layout Xmlファイルで更新しました。もし何かが見えたら教えてください。大変ありがとうございます。 –

+0

そのXMLは1つのファイルにまとめられているのですか、いくつかの異なるレイアウトを追加しましたか?私はあなたのGridLayoutのためのXMLが表示されません。 – Cheticamp

答えて

1

いくつかの問題を引き起こしている可能性があるXMLの領域の概要を説明します。まず、 というXMLレイアウトファイルが必要です。これは、最上位レイアウトを保持する次のようなものです。これは独自のファイルになります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

RecyclerViewは、LinearLayout内に単独で存在することに注意してください。レイアウトの各セルにImageButtonとTextViewのレイアウトを保持する個別のXMLファイル が必要になります。これはRecyclerViewのグリッドの各セルに収まるようになります。大きな画像をImageButtonに収めるにはandroid:scaleType="centerCrop"を使用しました。 RecyclerViewHolder

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp"> 

    <ImageButton 
     android:id="@+id/new_app_button" 
     android:layout_width="90dp" 
     android:layout_height="90dp" 
     android:layout_centerHorizontal="true" 
     android:adjustViewBounds="true" 
     android:scaleType="centerCrop" /> 

    <TextView 
     android:id="@+id/new_app_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/new_app_button" 
     android:layout_centerInParent="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" /> 

</RelativeLayout> 

onCreateViewHolder()以下の仮定「grid_cell.xml」のようになります上記のXMLファイルの名前 です。

@Override 
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) { 
    View layoutView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.grid_cell, parent, false); 
    RecyclerViewHolders holder = new RecyclerViewHolders(layoutView); 
    return holder; 
} 

これを試してください。私は他のすべてがOKだと思う。それがあなたを助けることを願っています

+0

ありがとう、それは問題を解決しました!私は今あなたの質問を承認するでしょう:) - エミリー –

+0

私はうまく働いて働いています。 – Cheticamp

+0

この質問に50の賞金はありませんでしたか? – Cheticamp

関連する問題