2017-01-27 17 views
0

私はアンドロイドを初めて使っています。アプリを作っています。UIのようなudemyやプレイストアが必要ですが、複数のセクションを実装する方法はわかりません様々なWebページを見たが、私はそれを保持することができない誰も私を助けてくれる?あなたの親切に助けをこのようなセクションリサイクラービューを実装するにはどうすればいいですか

何かありがとう、右方向または簡単なチュートリアルしてくださいに私を指す:それはあなたの検索に基づいて、販売上のコースは、私たちはお勧めの断面を有する https://lh3.googleusercontent.com/5WRlb_NPDauO0zluiwbL6JXF8c1G6uVxJwd2I_6hXY87x7Mc6gcbN7KMFtCe75kM0z4=h310 などを

これは私が持っているものです。

活動main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.hasg_.myapplication.MainActivity"> 
<android.support.v7.widget.RecyclerView 
android:id="@+id/recycler_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 

/> 
</RelativeLayout> 

行.xmlの

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="200dp" 
    android:layout_margin="12dp" 
    android:layout_height="300dp"> 
    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</android.support.v7.widget.CardView> 

adapter.java

package com.example.hasg_.myapplication; 

import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.TextureView; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

import java.util.ArrayList; 

/** 
* Created by hasg_ on 23/01/2017. 
*/ 
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> { 
    private ArrayList<String> mDataset; 

    public MainAdapter(ArrayList<String> mDataset) { 
     this.mDataset = mDataset; 
    } 

    @Override 
    public MainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     // create a new view 
     View v = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.row, parent, false); 
     // set the view's size, margins, paddings and layout parameters 

     ViewHolder vh = new ViewHolder(v); 
     return vh; 
    } 

    @Override 
    public void onBindViewHolder(MainAdapter.ViewHolder holder, int position) { 

    holder.mTitle.setText(mDataset.get(position)); 
    } 

    @Override 
    public int getItemCount() { 

     return mDataset.size(); 
    } 

    public class ViewHolder extends RecyclerView.ViewHolder { 
     public TextView mTitle; 
     public ViewHolder(View itemView) { 
      super(itemView); 

      mTitle= (TextView) itemView.findViewById(R.id.title); 
     } 
    } 
} 

MainActivity.java

package com.example.hasg_.myapplication; 

import android.app.Activity; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 

import java.util.ArrayList; 

public class MainActivity extends AppCompatActivity { 
    private RecyclerView mRecyclerView; 
    private RecyclerView.LayoutManager mLayoutManager; 
    private RecyclerView.Adapter mAdapter; 
    private ArrayList<String> mDataset; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mDataset=new ArrayList<>(); 
     for (int i = 0; i < 30; i++) { 
      mDataset.add("New Title #"+i); 


     } 
     mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
     mRecyclerView.setHasFixedSize(true); 
     mLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false); 
      mRecyclerView.setLayoutManager(mLayoutManager); 
     mAdapter= new MainAdapter(mDataset); 
     mRecyclerView.setAdapter(mAdapter); 


     } 
    } 
+0

「複数のセクション」の意味を明確にすることはできますか?複数のListViewを意味する場合は、使用する各データソースに対してListViewを作成する必要があります。 – degs

+0

私の質問を編集しました:) –

+0

http://android-pratap.blogspot.com/2015/12/horizo​​ntal-recyclerview-in-vertical.html –

答えて

0

あなたは、各データソースのためにあなたのレイアウトで別のRecyclerViewを作成する必要がありますあなたは表現したいと思う。それらのデータが異なる場合(そしておそらくそうなるでしょう)、それぞれに固有のアダプタとアイテムレイアウトファイルを作成する必要があります。それらに異なるIDを指定することと、MainActivityにすべて正しく設定することを確認してください。

あなたは、より明確なセクションを希望するように、activity main.xmlにレイアウトすることができます。 GitHubの上で与えられた

2

を参照してください)このように:

View view; 
    switch (viewType) { 
     case 0: 
      view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_0, parent, false); 
      break; 

     case 1: 
      view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_1, parent, false); 
      break; 

     case 2: 
      view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_2, parent, false); 
      break; 

     case 3: 
      view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_3, parent, false); 
      break; 

     case 4: 
      view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_4, parent, false); 
      breal; 

     default: 
      view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_0, parent, false); 

    } 

次に、getItemViewType()をオーバーライドします。

@Override 
public int getItemViewType(int position) { 
    return mItems.get(position); //data source 
} 
関連する問題