の唯一の最後の項目は、これまでRecyclerViewがスクロールされたときの時間を示すのTextViewが表示され、DIS-表示されます意味時間の少しの断片の後、私の努力は、このようになると、ターゲットのTextViewはVisiblity.GONEとアダプタがRecyclerView.OnScrollListenerは()に影響を与え、なぜ私は私のアプリ</p> <p><a href="https://i.stack.imgur.com/fRaTl.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fRaTl.gif" alt="enter image description here"></a></p> <p>でこの機能を持ちたいrecyclerview
public class ChatMessageAdapter extends RecyclerView.Adapter<ViewHolder> {
private List<ChatMessage> mMessageList;
private Context mContext;
private boolean isMe = false;
private ThemMessageHolder messageHolder;
public ChatMessageAdapter(Context mContext, List<ChatMessage> mMessageList){
this.mContext = mContext;
this.mMessageList = mMessageList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rootView = LayoutInflater.from(mContext).inflate(R.layout.chat_them_container, parent, false);
return new ThemMessageHolder(rootView);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
messageHolder = (ThemMessageHolder) holder;
messageHolder.mMessageTextView.setText(mMessageList.get(position).getMessage());
messageHolder.mSentAtTextView.setText(mMessageList.get(position).getSentAt());
}
@Override
public int getItemCount() {
return mMessageList.size();
}
public void showAndHideDate(){
messageHolder.mSentAtTextView.setVisibility(View.VISIBLE);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
messageHolder.mSentAtTextView.setVisibility(View.GONE);
}
},3500);
}
}
のように見えたとMainActivityに私は単に
を持っています上記のコードによる@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMessageList = new CopyOnWriteArrayList<>();
mChatMessagesRecyclerView = (RecyclerView) findViewById(R.id.chat_msg_rv);
mChatMessagesRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
mChatMessageAdapter = new ChatMessageAdapter(MainActivity.this, mMessageList);
mChatMessagesRecyclerView.setAdapter(mChatMessageAdapter);
mChatMessagesRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
mChatMessageAdapter.showAndHideDate(); // Here I'm calling the method defined in Adapter class
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
}
});
}
RecyclerViewの全ての項目にその所望の効果を適用する方法
示すように、私はRecyclerViewの唯一の最後の項目に対する所望の効果を得ますか?
のように見えるかもしれませんか? –
すべての目に見える保持者はどこに見つかるはずですか?そこでは?上のように 'onScrollStateChanged()'の中に –
があります。 –