我正在使用带有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) 我在recyclerview中显示了一个自定义列表项目
只有一个项目显示在此回收中
主要活动
AdapterforRecycleview adapter = new AdapterforRecycleview(this,dataItemList);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv);
recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
我正在使用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) 我在垂直再循环视图中有一个水平循环视图.
我添加列表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) 我正在制作聊天屏幕的布局,其中我使用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) 我有一个包含13个数据项的回收站视图.我想知道列表中的第一项是否可见?
我知道类似的方法findFirstVisibleItemPosition,findLastVisibleItemPosition但他们没有告诉第一个可见项是否实际上是列表的第一项.
我试图解决的问题是,我有一个视图寻呼机作为我的回收器视图的第一项,我想在用户向下滚动时停止自动滚动,它变得完全不可见.
如果有人知道如何做到这一点,请帮助.
所以我正在通过本教程
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) 在我的应用程序中,我有一个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) 我正在使用回收站视图。这是适配器
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
如何获得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