标签: android-recyclerview

带有recyclerview的Android viewpager无法分段运行

我正在使用带有viewpager的recyclerview片段。

我想在屏幕底部进行导航。 在此处输入图片说明

当我单击每个按钮时,每个片段都会显示在frameLayout中。

问题发生在我第二次进入艺术家片段时(第一次出现时,它按照我的意图显示。),如您在此图像中所见,请在此处输入图像描述

片段中没有出现。并滑动屏幕无法正常工作。它应该向左或向右移动摇杆,但停止在我停止移动手指的位置。

这是我的消息来源。

activity_main_board.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">


<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/navigation"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true">

</FrameLayout>

<LinearLayout
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="7dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/imageView7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:scaleType="fitXY"
            app:srcCompat="@drawable/image_background7" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="53dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <LinearLayout
            android:id="@+id/my_board_button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/imageView10"
                android:layout_width="30dp"
                android:layout_height="30dp"
                app:srcCompat="@drawable/ic_action_my" />

            <TextView
                android:id="@+id/textView34"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="MY"
                android:textSize="10sp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/artwork_board_button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/imageView13"
                android:layout_width="30dp"
                android:layout_height="30dp" …
Run Code Online (Sandbox Code Playgroud)

android fragment android-viewpager android-recyclerview

0
推荐指数
1
解决办法
988
查看次数

recyclerview不显示项目

我在recyclerview中显示了一个自定义列表项目
只有一个项目显示在此回收中

在此输入图像描述

主要活动

 AdapterforRecycleview adapter  = new AdapterforRecycleview(this,dataItemList);
    RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv);
    recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

适配器 在此输入图像描述 在此输入图像描述

android android-recyclerview

0
推荐指数
1
解决办法
776
查看次数

Android RecyclerView中的项目之间有很大的空间

我正在使用RecyclerView从每次在EditText中单击“ Enter”时都会填充的对象列表加载数据。但是我面临的问题是我添加的第一个项目显示为OK,当我添加第二个项目时,它显示了第一和第二个项目之间的巨大差距,如果我继续添加项目,则差距会变大并且列表不会不适合整个屏幕。

这是我的适配器:

public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.MyViewHolder> {

    private Context mContext;
    private List<Category> categoryList;
    private Category category;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView title, count;
        public EditText nameCategory;

        public MyViewHolder(View view) {
            super(view);
            nameCategory = (EditText) view.findViewById(R.id.edittext_category);
            //overflow = (ImageView) view.findViewById(R.id.overflow);
        }
    }


    public CategoryAdapter(Context mContext, List<Category> categoryList) {
        this.mContext = mContext;
        this.categoryList = categoryList;
    }

    @Override
    public CategoryAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.adapter_category, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

0
推荐指数
1
解决办法
2217
查看次数

处理Recycleview中的单击项目

我在垂直再循环视图中有一个水平循环视图.

我添加列表cardview水平recycleview.

单击主要活动上的项目时如何获取项目信息?

谢谢

public class MainActivity extends AppCompatActivity {
        private RecyclerView recyclerView;
        private AlbumsVerticalAdapter adapter;
        private List<Album> albumList;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            initCollapsingToolbar();
            recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
            albumList = new ArrayList<>();
            adapter = new AlbumsVerticalAdapter(this, albumList);
            recyclerView.setHasFixedSize(true);
            recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
            recyclerView.setAdapter(adapter);
        }

        private void initCollapsingToolbar() {}

        private void prepareAlbums() {}
    }


public class AlbumsVerticalAdapter extends RecyclerView.Adapter<AlbumsVerticalAdapter.MyViewHolder> {

    private Context …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

0
推荐指数
1
解决办法
2799
查看次数

RecyclerView正在全屏显示一条消息

我正在制作聊天屏幕的布局,其中我使用RecyclerView显示用户发送和接收的消息,但我面临的问题是RecyclerView在整个屏幕中只显示一条消息并且看到其他消息我必须向下滚动或向上滚动.我想垂直显示彼此旁边的消息.这是我的xml代码: -

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/chatparent"
    android:background="@color/background">
    <include layout="@layout/chattoolbar"/>





    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_messages"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:scrollbars="vertical"
        android:scrollbarStyle="outsideOverlay"/>


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom">




   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content">




            <FrameLayout
                android:layout_width="0dp"
                android:layout_height="50dp"
                android:layout_weight="0.80"
                android:background="@color/colorPrimary" />

            <FrameLayout
                android:layout_width="0dp"
                android:layout_height="50dp"
                android:layout_weight="0.20"
                android:background="@color/black"/>

   </LinearLayout>


        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rl_typing"
            android:background="@drawable/chatbox"
            android:orientation="horizontal"
            android:paddingLeft="5dp"
            android:paddingRight="10dp"
            android:layout_marginStart="15dp"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginEnd="2dp"
            >


            <Button
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:background="@drawable/ic_emoticons"
                android:layout_marginTop="8dp"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:gravity="bottom"
                android:id="@+id/btn_emoji"
                />



            <EditText
                android:layout_width="190dp"
                android:layout_height="wrap_content"
                android:inputType="textMultiLine"
                android:minLines="1"
                android:maxLines="20"
                android:lines="8"
                android:imeActionId="@+id/send"
                android:imeActionLabel="actionSend"
                android:imeOptions="actionSend"
                android:scrollbars="vertical"
                android:textColor="@color/monsoon"
                android:textColorHint="@color/dark_gray"
                android:id="@+id/et_message"
                android:textSize="13sp"
                android:hint=" Type …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-recyclerview

0
推荐指数
1
解决办法
1646
查看次数

查找Recycler视图中的第一个可见项是否是列表的第一项

我有一个包含13个数据项的回收站视图.我想知道列表中的第一项是否可见?

我知道类似的方法findFirstVisibleItemPosition,findLastVisibleItemPosition但他们没有告诉第一个可见项是否实际上是列表的第一项.

我试图解决的问题是,我有一个视图寻呼机作为我的回收器视图的第一项,我想在用户向下滚动时停止自动滚动,它变得完全不可见.

如果有人知道如何做到这一点,请帮助.

android android-recyclerview

0
推荐指数
1
解决办法
5831
查看次数

错误:(67,45)错误:不兼容的类型:视图无法转换为TextView

所以我正在通过本教程
Android RecyclerView和CardView教程尝试使用recyclelerview的cardview上的这个教程. 当我在一个单独的测试应用程序中重新创建它并且它运行顺利时,一切都很好,但是当我尝试在我的主项目中实现它时它开始了产生这个错误.提前致谢


错误:(67,45)错误:不兼容的类型:视图无法转换为TextView

在客户适配器中

    class PostViewHolder extends RecyclerView.ViewHolder{

    TextView textname, textbody, textdate;
    ImageView imageAvatar;

        public PostViewHolder(View itemView)
        {
                super(itemView);

->these lines            textname = itemView.findViewById(R.id.textname);
           textbody = itemView.findViewById(R.id.textbody);
           textdate = itemView.findViewById(R.id.textdate);
           imageAvatar = itemView.findViewById(R.id.imageAvatar); <-

        }
 }
Run Code Online (Sandbox Code Playgroud)

android android-cardview android-recyclerview

0
推荐指数
1
解决办法
5335
查看次数

Kotlin(Android)中RecyclerView中不需要的复选框选择

在我的应用程序中,我有一个RecyclerView,其中包含15个静态项目,包括一个TextView和一个CheckBox:

<android.support.v7.widget.RecyclerView
        android:id="@+id/list"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="82dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:scrollbars="vertical" />
Run Code Online (Sandbox Code Playgroud)

单击该项目时,相应的复选框将设置为选中状态,并将该项目添加到选择列表中。

问题:当我向下滚动并选择一个项目时,再次向上滚动我总是看到另一个复选框已选中。在调试时,我注意到,只有我实际选择的项目已添加到列表中,但是,当在UI中随机检查/“选择”其他项目时,这仍然会带来不良的用户体验。

我怎样才能阻止这种奇怪的行为?

我正在使用视图持有者来管理项目视图:

private inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) {
            val checkBox: CheckBox = view.findViewById(R.id.checkbox)
            val text: TextView = view.findViewById(R.id.text)

            init {
                view.setOnClickListener { checkBox.isChecked = !checkBox.isChecked }
                checkBox.setOnCheckedChangeListener { _, isChecked ->
                    val itemText = dataset[adapterPosition]
                    logger.debug("state change $isChecked for $itemText")
                    if (isChecked) selectedItems.add(itemText)
                    else {
                        if (selectedItems.contains(itemText)) selectedItems.remove(itemText)
                    }
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

我的onBindViewHolder()方法包含以下内容:

override fun onBindViewHolder(holder: MyViewHolder?, position: Int) {
            val itemText = dataset[position]
            holder?.text?.text …
Run Code Online (Sandbox Code Playgroud)

checkbox android kotlin android-recyclerview

0
推荐指数
1
解决办法
1050
查看次数

java.lang.ArrayIndexOutOfBoundsException:length = 12; recyclerview适配器中的index = -1

我正在使用回收站视图。这是适配器

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Contact> myContacts;
private Activity activity;

public MyAdapter(List<Contact> contacts,Activity activity)
{
    this.myContacts = contacts;
    this.activity = activity;
}


public class ViewHolder extends RecyclerView.ViewHolder {
    public TextView mTextView;
    public ImageView mColorView;
    public LinearLayout linearLayout;
    public ViewHolder(View v,MyAdapter adapter) {
        super(v);
        mTextView =  v.findViewById(R.id.name);
        mColorView = v.findViewById(R.id.image);
        linearLayout = v.findViewById(R.id.listItemLinearLayout);
        v.setOnLongClickListener(onLongClickListener(myContacts.get(getAdapterPosition()).getID(),getAdapterPosition(),adapter));
    }
}

@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                               int viewType) {
    // create a new view
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.my_text_view, parent, false);
    // set …
Run Code Online (Sandbox Code Playgroud)

android indexoutofboundsexception recycler-adapter android-recyclerview

0
推荐指数
1
解决办法
2121
查看次数

在RecyclerView项目中的每个按钮上单击

如何获得RecyclerView项目内单击按钮的位置

这是我的onBindViewHolder:

  public void onBindViewHolder(MyViewHolder holder, int position) {
    Masar masar=masrList.get(position);
    holder.masarName.setText(masar.getMasarTitle());
    holder.masarDesc.setText(masar.getMasarDescreption());

    //How to get the Position 

    holder.masarImg.setImageResource(masar.getMasarImg());

    holder.mapBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v ) {
            //if you need position, just use recycleViewHolder.getAdapterPosition();
            Intent intent = new Intent(v.getContext(), MapsActivity.class);
            mContext.startActivity(intent);
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

android android-adapter onclicklistener recycler-adapter android-recyclerview

0
推荐指数
1
解决办法
5646
查看次数