Tag: android recyclerview

Kotlin在GridLayout单元格的底部显示一个边框

我最近刚开始尝试学习Kotlin,同时开发一个android的日历应用程序(最低API 15) 目前我有一个使用GridLayout的RecyclerView。 我需要这个网格像这样(IOS版本)每行的底部有一个边框。 我对这个代码放在哪里有一个大概的想法,但是我实际上并不知道要使用什么代码。 drawable / calendar_cell_rounded.xml(也是一个用于绿色和灰色的颜色) 任何人都可以帮助我复制Kotlin上面的图像? 谢谢

与新的类Kotlin recyclerView

在mainActivity上用Kotlin创建了一个recyclerView。 它工作得很好。 我想现在将我的代码转移到一个新的类从MainActivity调用该类,并以这种方式激活recyclerView。 在mainActivity中调用该类,但是显然这还不够… var newClass: NewClass = NewClass() 如何使用recyclerView调用类或如何激活它? 添加了newClass的调用。 想要删除所有这些行。 谢谢 这是我在onCreate上的代码: enter code here var newClass: NewClass = NewClass() rowsList = ArrayList() layoutManager = LinearLayoutManager(this) adapter = RowListAdapter(rowsList!!, this) rowsListRv.layoutManager = layoutManager rowsListRv.adapter = adapter //load data var model = TableViewModel() var dataFromModel: ArrayList = model.getData() for (i in 0..dataFromModel.size – 1) […]

在Android Studio中转换后,Kotlintypes不匹配

我试图将现有的android代码转换为Kotlin代码。 但是,它显示以下错误 转换前的代码。 recyclerView.setAdapter(new RecyclerView.Adapter() { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater layoutInflater = getLayoutInflater(); return new RecyclerView.ViewHolder(layoutInflater.inflate(R.layout.item_restaurant2, parent, false)) { }; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } @Override public int getItemCount() { return 3; } }); 转换后的代码 recyclerView!!.setAdapter(object : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): […]

无尽的滚动kotlin回收视图/ ListView

我拼命尝试使用kotlin在Android应用程序上实现无尽的滚动。 所有的教程是无用的,因为他们没有正确解释的东西。 所以例如: https : //github.com/chetdeva/recyclerview-bindings 它看起来很有前途,但作者使用像“把这个在你的BindingAdapter”这样的短语,所以我看看这个BindingAdapter是什么,我发现了一个Java文件,但如果你插入任何东西,我会得到错误。 它像我尝试的任何东西直接失败。 其他的教程是用java编写的,甚至“翻译成kotlin”选项也没用,因为翻译的代码会抛出100个错误。 我尝试了这样的事情: setContentView(R.layout.activity_main) list.layoutManager = LinearLayoutManager(this) list.hasFixedSize() list.adapter = ListAdapter(this, getLists()) val list_view: RecyclerView = findViewById(R.id.list) fun setRecyclerViewScrollListener() { list_view.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) { val height = list_view.getHeight() val diff = height-dy if (diff < 1000){ /*load next list […]

GridLayout在Kotlin?

我正在尝试在我的Kotlin Android应用程序中获得2×6(WxH)GridLayout。 我有我的XML和片段/适配器设置为一个RecyclerView,但是有点不知所措,如何应用一个GridLayout到这个。 我如何让我的项目(listview_row_enrollments.xml)显示在一个网格,而不是一个水平的列表? EnrollmentFragment.kt class EnrollmentsFragment : Fragment() { // TODO: Rename and change types of parameters private var mParam1: String? = null private var mParam2: String? = null private var mListener: OnFragmentInteractionListener? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (arguments != null) { mParam1 = arguments.getString(ARG_PARAM1) mParam2 = arguments.getString(ARG_PARAM2) } } […]

Kotlin recyclerview给了我空指针例外

使用Java后,我开始学习Kotlin,试图用Kotlin创建回收站,但每次都要到达这个代码: recyclerview!!.layoutManager = LinearlayoutManager(context) 里面的一个片段,它总是为我返回null,并通过转换现有的Java代码在Android Studio中使用转换器返回error.Can任何人都可以帮助我为什么这总是发生? 下面的代码是我目前的片段代码: import android.os.Bundle import android.support.v4.app.Fragment import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import kotlinx.android.synthetic.main.fragment_notes.* import java.sql.Timestamp class NotesFragment : Fragment() { companion object { fun newInstance(): NotesFragment { return NotesFragment() } } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater?.inflate(R.layout.fragment_notes, […]

检查RecyclerView是否滚动(findFirstCompletelyVisibleItemPosition不起作用)

我如何检查回收站视图是否滚动到其顶部 (列表的开始),而不使用findFirstCompletelyVisibleItemPosition ? 说明:我不能使用这种方法,因为RecyclerView上的项目很大,有时永远不会“完全可见”,所以方法将返回-1( RecyclerView.NO_POSITION ) 我只需要知道这一点,只有当回收站视图达到顶峰时才会触发一个动作。 val manager = timelineRecyclerView?.layoutManager as StaggeredGridLayoutManager val visibles = manager.findFirstCompletelyVisibleItemPositions(null) 解决:包括一些代码来帮助 timelineRecyclerView.addOnScrollListener(object:RecyclerView.OnScrollListener() { override fun onScrollStateChanged(recyclerView:RecyclerView, newState:Int) { super.onScrollStateChanged(recyclerView, newState) } override fun onScrolled(recyclerView:RecyclerView, dx:Int, dy:Int) { super.onScrolled(recyclerView, dx, dy) currentTimelinePosition += dy Log.wtf("position", currentTimelinePosition.toString()) //if the timeline position is on its start, allow swipe and refresh swipeLayout.isEnabled […]

Recyclerview查看共享状态

编辑:问题的原因竟然有一个完全不同的起源。 MediaMetadataCompat搞乱了数据。

RecycleView列表项目不出现

我一直在尝试使RecyclerView在我的应用程序中工作,其中的列表项是ImageView ,并且图像被下载并放入(异步)在onBindViewHolder方法中。 我没有在我的代码中遇到任何错误,但出于某种原因 只有在活动加载时才会显示(甚至部分)给用户的列表项,将图像加载到其中。 虽然我看不到图像,但我发现这些项目的高度和宽度已经正确分配。 而且由于图像首先下载,然后确定ImageView的尺寸,我认为这个问题与RecyclerView本身有关系吗? 如果有人能够对此有所了解,那就太好了。 谢谢。 我还想补充一点,如果活动暂停,然后恢复(通过单击“方形”导航按钮,然后恢复),所有列表项的图像加载正确。 图#1 图#2 这是我的代码: onCreate方法: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) recyclerView { id = ViewID.ID_LIST } val imgList = ArrayList<ImageView>() imgList.add(ImageView(ctx)) imgList.add(ImageView(ctx)) imgList.add(ImageView(ctx)) imgList.add(ImageView(ctx)) val lv = findViewById(ViewID.ID_LIST) as RecyclerView lv.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) lv.adapter = ImageRecyclerAdapter(ctx, imgList) } RecyclerView.Adapter类: private class ImageRecyclerAdapter(val context: Context, […]

我的RecyclerView没有得到适当的通知

我有一个RecyclerView活动和一个ViewModel类。 该活动在ViewModel中调用一个消耗Web服务的方法,并且还观察LiveData字段。 每次该方法从Web服务中取回一个项目时,都会将其设置为LiveData,因此Activity中的观察者将被通知,因此所有项目都将进入RecyclerView。 这是保证,这个流程正常工作,因为我可以在日志中看到,也在UI中。 当我在使用Web服务的方法中使用Thread.slepp(500)延迟时出现问题。 而不是把物品放入RecyclerView,然后等待500millis,然后再放一个,它等待500毫秒* numberOfItems,然后把它们一起画出来。 我可以保证ViewModel和LiveData设置没有问题,因为日志按预期的意义工作,它打印创建的项目标题,等待500毫秒,打印下一个。 所以问题只在于适配器,以及只有在方法调用完成后才通知它。 我的问题是,如何每次调用观察者时通知适配器? 这里是我的三个类的实现: RecipeList class RecipeList : LifecycleActivity() { var recipeList: MutableList<Recipe> = mutableListOf() var adapter: RecipeAdapter? = null var viewModel: RecipeViewModel? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_recipe_list) val ingredients = intent.getStringExtra("ingredients") val term = intent.getStringExtra("term") viewModel = ViewModelProviders.of(this).get(RecipeViewModel::class.java) val url = "http://www.recipepuppy.com/api/?i=${ingredients}onions,garlic&q=${term}" val […]