1

Я много думал и не могу понять, как этого добиться: я делаю простое приложение и вижу на дриблинге красивый дизайн. При добавлении к делу, то первая строка является EditText:RecyclerView - первая строка EditText

enter image description here

После сохранения Todos показаны как TextView. Любые идеи, как достичь этого?

ответ

1

Вам необходимо создать другой класс viewHolder для разной компоновки и прикрепить другой вид в onCreateVIewHolder. Вот пример:

private Activity currActivity; 
private Context currContext; 
private List<CommonCategory> itemList; 

public HomeFeedRecyclerAdapter(Activity currActivity, Context currContext, ArrayList<CommonCategory> itemList) { 
    this.itemList = itemList; 
    this.currActivity = currActivity; 
    this.currContext = currContext; 
} 


@Override 
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
View view; 
RecyclerView.ViewHolder viewHolder; 

switch (viewType) { 
    case TYPE_ONE: { 
     view = getLayoutView(parent, R.layout.list_one); 
     viewHolder = new EditTextViewHolders(view, currActivity); 
     break; 
    } 
    case TYPE_TWO: { 
     view = getLayoutView(parent, R.layout.list_two); 
     viewHolder = new TextViewHolders(view, currActivity, getItem(viewType)); 
     break; 
    } 
    default: { 
     viewHolder = null; 
    } 

} 
return viewHolder; 

}

Затем создайте два разных класса viewHolder (в данном случае EditTextViewHolders и TextViewHolders) и определить свои взгляды там. Затем при вводе текстового обновления ArrayList и RecyclerView (notifyDataSetChanged()).

0

Таким образом, мой подход будет таким, как этот.

public void onBindViewHolder(HolderClass holder, int position) { 
if (position == 0){ 
editTest.setVisibility(View.VISIBLE); 
textView.setVisibility(View.GONE); 
} else { 
editTest.setVisibility(View.GONE); 
textView.setVisibility(View.VISIBLE); 
textView.setText(listItem.getTitle()); 
} 

Для первой позиции Держите editext видимым и для положения покоя сохраняйте видимость текста.

Сделать файл макет, как это: -

<RelativeLayout 
width="match_parent" 
height="50dp"> 

<EditText 
width="match_parent" 
height="wrap_content"/> 

<TextView 
width="match_parent" 
height="wrap_content"/> 

</RelativeLayout> 

Надеется, что это помогает.

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