2

내 3 조각 뷰 페이지의 조각 내에서 recyclerview를 사용하고 싶습니다. 나는 코드를 작성했는데 완벽하게 돌아갔다.하지만 왜 너무 느린 지 모르겠다. 한 조각에서 다른 조각으로 바꿀 때 거의 30 분 정도 걸린다. 내가 실수 한 것을 알지 못한다.Recyclerview 뷰 페이지 안의 조각 내

주요 활동 여기

public class MainActivity extends AppCompatActivity { 

    private Toolbar toolbar; 
    private TabLayout tabLayout; 
    private ViewPager viewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 
     toolbar = (Toolbar)findViewById(R.id.toolBar); 
     tabLayout = (TabLayout)findViewById(R.id.tabs); 
     viewPager = (ViewPager)findViewById(R.id.viewPager); 

     setSupportActionBar(toolbar); 
     ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     viewPagerAdapter.addFragment(new OneFragment(), "One"); 
     viewPagerAdapter.addFragment(new TwoFragment(), "Two"); 
     viewPagerAdapter.addFragment(new ThreeFragment(), "Three"); 

     viewPager.setAdapter(viewPagerAdapter); 
     tabLayout.setupWithViewPager(viewPager); 

    } 
} 

그것이 내가 recyclerview을 구현하려고 내 조각 중 하나입니다.

조각

public class TwoFragment extends Fragment { 

    public TwoFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View view = inflater.inflate(R.layout.fragment_two, container, false); 

     OurData ourData = new OurData(); 
     ourData.pic.add(R.drawable.b); 
     ourData.title.add("Hello"); 
     RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.listRecyclerView); 
     ListAdapter listAdapter = new ListAdapter(); 
     recyclerView.setAdapter((listAdapter)); 
     RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity()); 
     recyclerView.setLayoutManager(layoutManager); 

     return view; 
    } 
} 

public class ListAdapter extends RecyclerView.Adapter { 

    @Override 
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false); 
     return new ListViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
     ((ListViewHolder) holder).bindView(position); 
    } 

    @Override 
    public int getItemCount() { 
     return OurData.title.size(); 
    } 

    private class ListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 
     private TextView text; 
     private ImageView image; 

     public ListViewHolder(View itemview) { 
      super(itemview); 
      text = (TextView) itemview.findViewById(R.id.textF); 
      image = (ImageView) itemview.findViewById(R.id.imageF); 
      itemview.setOnClickListener(this); 
     } 

     public void bindView(int position) { 
      text.setText(OurData.title.get(position)); 
      image.setImageResource(OurData.pic.get(position)); 
     } 

     public void onClick(View view) { 

     } 
    } 
} 

public class OurData { 

    public static ArrayList<String> title = new ArrayList<String>(); 
    public static ArrayList<Integer> pic = new ArrayList<Integer>(); 

} 

그것은 내가 뭘 잘못했는지 생각 내 하루 tooks. 제발 도와주세요!

답변

0

내가 문제는 당신의 방법 중 하나라고 생각 recyclerView.setAdapter((listAdapter)); insise 대신 onCreateView

+0

문제는 내 resource.Images 크기

@Override public int getItemCount() { return OurData.title.size(); } 

각 코드 로그인을 사용하여 시도하고, 특히 시간이 걸리는 부분을 볼 수 있었다 너무 컸습니다. 감사합니다. –

0

의 onViewCreated 어댑터를 설정합니다. 어쩌면 'OurData' 또한 당신이 확실히 이것이다 : 'OurData'

+0

지금 해결되었습니다. 문제가 내 리소스에 있습니다. 이미지 크기가 너무 큽니다. 감사합니다. –

관련 문제