2016-02-04 4 views
3

Я пытался совместить два смежных положения в режиме recyclerview, но не могу этого сделать. Я хотел бы, чтобы часть первой позиции перекрывала/рисовала по второй позиции.Перекрывающиеся позиции/представления в recyclerview

Я играл с пользовательским RecyclerView.ItemDecoration, и это getItemOffsets, однако, похоже, что он может добавлять дополнение/маржу на позицию, а не переводить его в новое положение за пределами его viewparent.

У кого-нибудь есть указатели на то, как достичь этого с помощью recyclerview?

ответ

6

Ну, вы также можете добавить отрицательный запас в RecyclerView.ItemDecoration.


Пример:

ItemDecorator.java

public class ItemDecorator extends RecyclerView.ItemDecoration { 
    private final int mSpace; 

    public ItemDecorator(int space) { 
     this.mSpace = space; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 
     outRect.left = mSpace; 
     outRect.right = mSpace; 
     outRect.bottom = mSpace; 
     outRect.top = mSpace; 
    } 
} 

MainActivity.java

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ArrayList<String> arrayList = new ArrayList<>(); 
     arrayList.add("Hi"); 
     arrayList.add("World"); 
     arrayList.add("What"); 

     RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rec1); 
     //Negative margin! 
     ItemDecorator itemDecorator = new ItemDecorator(-30);  
     recyclerView.setAdapter(new CustomAdapter(arrayList)); 
     recyclerView.addItemDecoration(itemDecorator); 
     recyclerView.setLayoutManager(new LinearLayoutManager(this)); 

    } 
} 
+0

Спасибо, не могу поверить, что я пропустил что :) –

Смежные вопросы