- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 ViewPageAdapter 将我的 recyclerview 构建为多个 fragment 。我对 Android Studio 还很陌生,我不知道如何处理我遇到的错误。我的回收 View 没有显示,在运行时,我遇到的唯一问题似乎是“跳帧”类型的问题。这通常小于 100 帧(而且我的模拟器很慢,所以我不知道应用程序是否真的占用了这么多时间)。
我尝试修复它的事情:我尝试使用 AsyncTask 类,但我仍然不确定如果它减慢了应用程序的速度,如何正确实现它。该平台上的一些人建议您需要翻转回收器 View 适配器和布局管理器的设置顺序,但这根本没有帮助。
注意:我还没有时间为 ViewPageAdapter 创建新的 fragment 类。目前只有一个 fragment 类,但我打算在 ViewPager 上将多个 fragment 表示为多个页面。 (另外,我不想分享我团队项目背后的总体想法。我想保持匿名,但如果您发现有必要了解该项目的主要想法,我绝对可以发送消息更多详细信息。)
我设置 RecyclerView 适配器的 fragment
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public class Fragment_new extends Fragment {
View v;
private RecyclerView myRecyclerView;
private List<new_prescription> list_prescriptions;
public View onCreateNewView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.new_fragment, container, false);
myRecyclerView = v.findViewById(R.id.recyclerview_obj);
recyclerViewAdapter recycleAdapter = new recyclerViewAdapter(getContext(), list_prescriptions);
myRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
myRecyclerView.setAdapter(recycleAdapter);
return v;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
list_prescriptions = new ArrayList<>();
list_prescriptions.add(new new_prescription("Some Medication #1", "6:30-9:30", 5));
list_prescriptions.add(new new_prescription("Some Medication #2", "1:30-4:30", 5));
}
}
ViewPageAdapter 为不同的 fragment 创建 View
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;
public class ViewPageAdapter extends FragmentPagerAdapter {
private final List<Fragment> pager_list = new ArrayList<>();
private final List<String> string_List = new ArrayList<>();
public ViewPageAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return pager_list.get(position);
}
@Override
public int getCount() {
return string_List.size();
}
public CharSequence elementString(int position) {
return string_List.get(position);
}
public void addFragment(Fragment fragment, String title) {
pager_list.add(fragment);
string_List.add(title);
}
}
我的 RecyclerView 的普通 RecyclerViewAdapter
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class recyclerViewAdapter extends RecyclerView.Adapter<recyclerViewAdapter.MyViewHolder> {
Context data;
List<new_prescription> new_list;
public recyclerViewAdapter(Context data, List<new_prescription> new_list) {
this.data = data;
this.new_list = new_list;
}
public recyclerViewAdapter() {
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(data).inflate(R.layout.new_fragment_items, parent, false);
MyViewHolder view = new MyViewHolder(v);
return view;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.new_name.setText(new_list.get(position).getName());
holder.new_quantity.setText(new_list.get(position).getTime());
}
@Override
public int getItemCount() {
return new_list.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView new_name;
private TextView new_quantity;
private ImageView new_image;
private TextView new_time;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
new_name = itemView.findViewById(R.id.prescription_name);
new_image = itemView.findViewById(R.id.new_image);
new_quantity = itemView.findViewById(R.id.quantity_items);
new_time = itemView.findViewById(R.id.new_time);
}
}
}
主要 Activity 类
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
public class Main_Activity_Frags extends AppCompatActivity {
private TabLayout layout;
private ViewPager viewpager;
private ViewPageAdapter adapter;
public Main_Activity_Frags() {
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_2);
layout = findViewById(R.id.tab_layout_id);
viewpager = findViewById(R.id.viewpager_id);
adapter = new ViewPageAdapter(getSupportFragmentManager());
adapter.addFragment(new Fragment_new(),"Prescriptions For Today");
adapter.addFragment(new Secondary_Fragment(),"Quantity");
adapter.addFragment(new Fragment_final(), "Time");
viewpager.setAdapter(adapter);
layout.setupWithViewPager(viewpager);
layout.getTabAt(0).setIcon(R.drawable.baseline_today_black_18dp);
layout.getTabAt(1).setIcon(R.drawable.baseline_history_black_18dp);
}
}
这是我用来实例化添加到 RecyclerView Arraylist 的 new_prescription 对象的类。
public class new_prescription {
private String Name;
private String Time;
private int Frequency;
public new_prescription() {
}
public new_prescription(String name, String time, int frequency) {
Name = name;
Time = time;
Frequency = frequency;
}
public String getTime() {
return Time;
}
public String getName() {
return Name;
}
public int getFrequency() {
return Frequency;
}
}
最佳答案
我认为这是可行的,试试这个:
public class Fragment_new extends Fragment {
private RecyclerView myRecyclerView;
private List<new_prescription> list_prescriptions;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.new_fragment, container, false);
myRecyclerView = v.findViewById(R.id.recyclerview_obj);
list_prescriptions = new ArrayList<>();
list_prescriptions.add(new new_prescription("Some Medication #1", "6:30-9:30", 5));
list_prescriptions.add(new new_prescription("Some Medication #2", "1:30-4:30", 5));
recyclerViewAdapter recycleAdapter = new recyclerViewAdapter(getContext(), list_prescriptions);
myRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
myRecyclerView.setAdapter(recycleAdapter);
return v;
}
}
关于java - RecyclerView 根本不显示。我找不到错误。我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60161505/
我在另一个 RecyclerView(parentRecyclerView) 中实现了 RecyclerView(childRecyclerView),图片说明了所有的实现: 我想编写一个 espre
我正在构建一个应用程序,它使用ViewPager2在页面之间水平滚动,每个页面都有一个垂直滚动的内容RecyclerView,其中每个列表的第一个位置都有一行水平滚动小部件,例如附加到寻呼机指示器类型
我正在尝试实现一个水平的 recyclerview 并且 recyclerview 的每个项目都将是一个具有网格布局的垂直 recyclerview。我面临的问题是,当我尝试垂直滚动子 recycle
我使用显示条目列表的 RecyclerView。每个条目都托管另一个 RecyclerView,它是一个图像列表。 我现在想让这个嵌套的 RecyclerView 可点击,而不是它的项目,而是整个 V
我正在尝试将手机中的图像加载到我的回收 View 中。 到目前为止,我已经创建了一个 recyclerview.adapter 和一个 gridlayoutmanager,并将它们附加到我的 recy
我需要一个可扩展 View ,其中父/可扩展标题将具有文本和下拉箭头。每个此类标题的子项应该是在网格结构中具有多个项目的 View 。 (有点像带有 GridLayoutManager 的回收器 Vi
我正在使用显示不同类别列表的 RecyclerView。每行项目还包含 RecyclerView 以显示类别项目列表。父级 RecyclerView 由垂直 LinearLayoutManager 填
我正在更新一个旧的 Android 项目,现在我从 RecyclerView 中反复收到这条日志语句: W/RecyclerView:RecyclerView 不支持滚动到绝对位置。改为使用 scro
在我的 Adapter 中,我调用 LayoutManager.ChildAt(position) 来获取 itemview,但是我得到的 View 不是匹配的 itemview,当我调用 notif
我正在从 ListView 迁移到 RecyclerView,但是在 SQLite 中输入一些数据后,我的列表没有使用 notifyDataSetChanged() 更新;所以我总是要调用setAda
我正在用 Google Now Cards 的风格创建一组 5 张卡片。我首先关注的是总体布局。 我正在使用 CardView 和 RecyclerView ,我想要实现的是这样的: 这是我的 Car
在我的应用程序中,我有一个 RecyclerView,其中包含一个简单的项目 View ,每行包含一个 TextView 和一个 Spinner。 用户从操作栏中单击“保存”后,我需要遍历所有项目并获
我正在尝试检查 RecyclerView 中是否可以看到某些特定项目;但我无法实现。请帮助我确定我的项目是否在 RecyclerView 中完全可见。 mrecylerView.addOnScroll
我有一个提要片段,它的主要元素是帖子的 RecyclerView。 我正在使用 Lisa Wray 的 Groupie 库管理回收站 https://github.com/lisawray/group
我有这两个类似的行为回收器 View 适配器,它们之间的唯一区别是 onclick 方法和传递给它们的对象。所以,我正在考虑将类 B 设计为从回收器 View 适配器继承,这样我就可以更改构造函数来执
这很奇怪。我对这个问题感到沮丧。我将数据保存在 ArrayList 中。当我将数据放在 RecyclerView 上时。数据未显示在列表中。这是我的代码 listOrder.forEach { ord
编辑我通过使用 CoordinatorLayout 和 AppBarLayout 作为 header 和 TabLayout 的包装解决了这个问题。本来应该很明显,但是哦,好吧。 原始问题:我有一个设
我有一个回收 View 。我想从其适配器类更新回收器 View 。我尝试了 notiftDataSetChanged( ) 但它只适用于主类。下面是 recyclerview 适配器类的代码。 pac
我正在使用具有不同 viewholders 的 recyclerview(具有垂直 LinearLayout),其中一个有另一个 RecyclerView(带有水平 LL)。在第二个 recycler
我想创建一个与 Google Play Store 或 Netflix App 类似的布局,其中在单个 RecyclerView 中基本上有多个水平 RecyclerView。如果这不是他们做事的方式
我是一名优秀的程序员,十分优秀!