我正在玩新的RecyclerView.并遇到了一些问题:
android:background="?android:attr/selectableItemBackground"(以L RecyclerView onItemClick效果)如何在单击时使RecyclerView的行为更像ListView,以便用户能够在通知单击侦听器之前看到完成单击动画?
我知道我可以通过使用来解决这个问题,View.postDelayed但这似乎不是最佳解决方案,因为在延迟期间,用户可能能够点击更多列表项.
下面是具有一个机器人工作室项目的存储库中的链接ListView和RecyclerView并排帮助演示问题:https://github.com/ericytsang/question.listview-vs-recyclerview
非常感谢!
我正在使用Firebase UI FirebaseRecyclerAdapter来填充RecyclerView.我设法从项目视图(标题)的组件中获取单击事件,但不是在项目视图中的任何位置,这是我需要的.我跟着谷歌样本.
在我的活动中:
private void setRecyclerView() {
recyclerView = (RecyclerView) findViewById(R.id.recycler_view_gigs);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new FirebaseRecyclerAdapter<Gig, GigViewHolder>(Gig.class,
R.layout.list_item_card,
GigViewHolder.class,
reference) {
@Override
protected void populateViewHolder(final GigViewHolder viewGig, Gig model, final int position) {
viewGig.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(Utils.TAG, "onItemClickGeneral: position " + position);
// this doesn't work
}
});
viewGig.bindToGig(model, new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(Utils.TAG, "onItemClickTitle: position " + position);
// this works
}
});
}
}; …Run Code Online (Sandbox Code Playgroud) android onclicklistener android-recyclerview firebase-realtime-database firebaseui
所以,在最新的更新之前,我使用onListItemClick监听器,它工作正常,但现在我尝试使用RecyclerView,我不知道如何为每个项目实现onClick,这将打开一个新的活动..
这就是我以前的样子
public class SermonsFragment extends Fragment {
@Override
public void onListItemClick(ListView list, View v, int position, long id) {
Intent mediaStreamIntent = new Intent(getActivity(), MediaStreamPlayer.class);
mediaStreamIntent.putExtra("sermon_details", (android.os.Parcelable) list.getItemAtPosition(position));
startActivity(mediaStreamIntent);
}
}
Run Code Online (Sandbox Code Playgroud)
但现在,我没有使用listview而是创建了一个布道适配器,它看起来像这样
public class SermonListAdapter extends RecyclerView.Adapter<SermonListAdapter.ViewHolder>{
private ArrayList<Sermon> mDataset;
// Provide a reference to the views for each data item
// Complex data items may need more than one view per item, and
// you provide access to all the views for a data item in a view …Run Code Online (Sandbox Code Playgroud) android android-intent android-cardview recycler-adapter android-recyclerview
我正在尝试以编程方式单击recyclerView的项目.我正在使用:
recyclerView.findViewHolderForAdapterPosition(index).itemView.performClick();
Run Code Online (Sandbox Code Playgroud)
当索引是可见项时,这非常有效.如果该项目不可见(在recyclerview的最后位置,对于istance),则抛出异常.
我能做什么?
我正在做的任务,我需要在点击后显示一个对话框EditText.在该对话框中,我使用RadioButtons 显示内容RecyclerView.
现在,我想要做的是,在从对话框中选择RadioButton(在RecyclerView中的内容)之后,它应该返回该内容的值,然后应该关闭对话框.
为了生成一个对话框我用了一个DialogFragment.
由于我是android开发的新手,我完全感到困惑,无法找到解决方案.
伙计们,我真的需要你们的帮助,我被困住了。简而言之,我制作了 recyclerview 来显示我解析的 json 数据。我被困在如何获得 recyclerview 位置并将 json 对象传递给新的活动槽意图。这是我的代码,所以你可以看到发生了什么。主要活动:
public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
ArrayList<Item> end = new ArrayList<Item>();
RecyclerView recyclerView;
Adapter adapter;
List<Item> mModels;
Context context = this;
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelableArrayList("KEY2", end);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// View view = LayoutInflater.from(this).inflate(R.layout.activity_main, null, false);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.RecylerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new Adapter(this);
recyclerView.setAdapter(adapter);
if (isAvailable() && savedInstanceState == null)
//Check if network is available
{ …Run Code Online (Sandbox Code Playgroud) 我正在玩RecyclerView,我发现没有太多关于如何使用它的文档
我从文档中看到GMail应用程序正在使用RecyclerView,但在应用程序中它具有许多普通RecyclerView不支持的功能:
它有截图
https://developer.android.com/training/material/lists-cards.html
特征:
我可以知道如何实现这些功能吗?
我发现有关于如何实现OnClickListener的讨论,(这些解决方案非常缓慢,因为它不断检查列表项区域)
但是,如果将它与Gmail应用程序进行比较,它会快速而流畅!
我可以知道如何实现上述2个功能吗?他们是如何做到的呢?他们使用Recyclerview还是ListView?
我确信我可以使用ListView实现这些功能,但我不知道如何使用Recyclerview实现它们.
android android-listview material-design android-recyclerview
我正在使用a RecyclerView,当我触摸该项目时,我无法看到任何反馈RecyclerView.我该如何实现?
我试图在用户触摸行时向用户显示反馈RecyclerView.像涟漪效应的东西.
我想知道如何在特定的一行中实现它RecyclerView.
这是回收站视图的自定义行布局.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/drawer_row"
android:background="?android:attr/selectableItemBackground"
android:clickable="true">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"
android:layout_toEndOf="@+id/navigation_image"
android:layout_toRightOf="@+id/navigation_image"
android:textSize="17sp" />
<ImageView
android:id="@+id/navigation_image"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp" />
<TextView
android:id="@+id/horizontal_line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:background="#F1F1F1" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是的布局Activity具有RecyclerView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/windowBackground">
<RelativeLayout
android:id="@+id/nav_header_container"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:background="@drawable/ic_drawer_header">
<ImageView
android:id="@+id/circle_imageview"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@drawable/profile_pic"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) 我正在使用 Android 的应用程序来完成它,但我在 recyclerView 中发现了问题,并且我不知道如何在 recyclerView 的 Item 的 textview 上实现单击侦听器?(当我点击项目时)
我有一个多选 recyclerview ......只有当我选择 recyclerview 项目时,textview 才可见
我有一个View.OnClickListener,Recycler View但是每当我单击视图时,它都不会触发该onClick事件
这是代码:
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView name;
ImageView image;
Context context;
ArrayList<Categories_Model_Class> arrayList;
public ViewHolder(View view, Context context, ArrayList<Categories_Model_Class> arrayList) {
super(view);
name = view.findViewById(R.id.category_name);
image = view.findViewById(R.id.category_image);
this.context = context;
this.arrayList = arrayList;
view.setOnClickListener(this);
Log.i("Created", "ViewHolder");
}
@Override
public void onClick(View view) {
//Pair<View, String> pair1 = Pair.create((View) this.image, this.image.getTransitionName());
Intent intent = new Intent(context, FullWallpaperViewActivity.class);
//ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)context, pair1);
context.startActivity(intent);
Log.i("TOUCH", "TOUCH");
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
CardView …
android onclicklistener android-viewholder android-recyclerview