Tag: android recyclerview

EditText失去了对RecyclerView中Scroll的关注

我有一个RecyclerView ,它有EditText作为列表项。 当我滚动RecyclerView , EditText在项目离开屏幕时失去焦点。 因此,当它在滚动屏幕上返回时,焦点不会保留在EditText上。 我希望焦点保持在同一个项目上。 为此我还尝试将项目的position存储在焦点上,并将焦点重新分配在onBindViewHolder 。 但滚动速度减慢了。 我也尝试使用ListView但还有另一种与focus相关的问题。 焦点跳到那里。 在搜索引擎优化和谷歌搜索了很多。 但总能找到像android:focusableInTouchMode=”true”和android:descendantFocusability=”afterDescendants”这样的android:descendantFocusability=”afterDescendants” ,这些都不起作用。 任何帮助将受到高度赞赏。

Android从中创建自定义RecyclerView.Adapter并创建其他类

好吧,我有一个RecyclerView,我从WebService填充,我有一个DataProvider类来管理异步请求。 因此,当获取数据时,我需要此DataProvider通知RecyclerView.Adapter有新数据。 为此,我需要向RecyclerView.Adapter添加一个允许此通信的方法。 但是当我用这个新方法创建一个基类(扩展了RecyclerView.Adapter),然后创建自定义适配器时,它不会让我覆盖RecyclerView.Adapter方法。 我究竟做错了什么? 这是基类 public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter{ public static class ViewHolder extends RecyclerView.ViewHolder{ public ViewHolder (View v){ super(v); } } public BaseRecyclerAdapter(RecyclerView rv){ } public void setDataSet( String data) { //This is the method i need to add } } 这是扩展BaseRecyclerAdapter的自定义适配器 public class PlacesAdapter extends BaseRecyclerAdapter { public static class […]

使用带有GridLayoutManager的RecyclerView为手机和平板电脑的不同布局添加动态按钮

我正在为布局添加动态按钮。 每个按钮一次添加一个,如果根据用户的操作添加了新按钮,则布局必须自行更新。 所以布局可以有3个按钮,或者16个,或者其他什么,具体取决于用户的动作。 按钮可以在不同的时间添加。 因此,如果用户打开应用程序并添加按钮,然后离开并返回到应用程序并添加另一个按钮,则必须保留旧按钮。 我想将我的按钮逐个添加到这样的布局中: 我已经四处查看了如何做到这一点,并建议我使用带有GridLayoutManager的RecyclerView。 我已将此添加到我的代码中,但问题是,当我添加一个按钮,然后如果我添加另一个按钮,第二个添加到第一个按钮之上。 因此,如果用户操作说应该制作16个按钮,我只是将16个按钮放在彼此的顶部,而不是我想要的布局。 这是我的代码: 启动RecyclerView的主要片段:我有另一个活动启动“createButton”方法并传递drawable和字符串。 这些drawable和字符串将根据用户的操作一次一个地传递给此方法,并一次创建一个图像按钮 public class MyFragment extends Fragment { private GridLayoutManager lLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } // onCreateView @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment, container, false); // Create an empty list to initialize the […]

Android:当软输入键盘出现时,Recyclerview不会resize

我有一个包含片段的活动,片段包含自定义视图。 customview包含一个edittext,并在其下方是一个高度为match_parent的recyclerview。 当用户专注于edittext时,会出现一个软输入键盘。不幸的是,这个键盘隐藏了它下面的一半Recyclerview。 我希望recyclerviewresize到屏幕的剩余可见高度(在edittext下),这样列表中的项目不会被键盘隐藏。 我已经尝试为清单中的活动设置adjustresize但它没有效果: android:windowSoftInputMode=”adjustResize” 我已经尝试将我的应用主题设置为基本主题(如果我的自定义主题中的某些内容导致问题) – 没有效果: android:theme=”@style/Theme.AppCompat.NoActionBar” 我已经检查过以确保层次结构中的任何地方都没有框架布局到必须resize的视图(我读了一个SO线程,这可能是个问题) – 没有。 我检查了活动,片段,自定义视图和连接的每个适配器,以确保我没有在任何地方调用getWindow(我不是)。 自定义视图在运行时从视图存根中膨胀。 这有联系吗? 编辑: 父母的内容: … viewstub的内容: 这样显示键盘: public static void showSoftKeyboard(Activity activity) { View view = activity.getCurrentFocus(); InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); }

Recyclerview – 顶部项目应与下一个项目重叠,依此类推

我为这样的项目设置了负余量: – public class ItemDecorator extends RecyclerView.ItemDecoration { private final int mSpace; public ItemDecorator(int space) { this.mSpace = space; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { int position = parent.getChildAdapterPosition(view); if (position != 0) outRect.top = mSpace; } } 这会导致顶部项目在最重要项目重叠之后堆叠最低项目和下一项目。 我希望顶部项目与下一个项目重叠,依此类推。

RecyclerView滚动时滞后

滚动浏览RecyclerView时,我无法理解刹车的原因是什么。 滚动由mRecyclerView.smoothScrollToPosition(position);调用mRecyclerView.smoothScrollToPosition(position); 滚动抽搐列表时(渲染时间范围> 16ms) AlphaAdapter.java public class AlphaAdapter extends RecyclerView.Adapter { private static final String TAG = “AlphaAdapter”; private Context mContext; private List mGunList; private boolean isAnimate; private final int VIEW_TYPE_NULL = 0; private final int VIEW_TYPE_ITEM = 1; public AlphaAdapter(Context mContext, List mGunList) { this.mContext = mContext; this.mGunList = mGunList; } public AlphaAdapter(Context mContext, […]

Getter与任何领域无关 – Realm

我是新手使用Realm库 ,并试图在我的Android应用程序中实现它。 刚刚陷入我试图根据我的json响应中的特定元素的视图类型对listview进行分区的问题。 我试图使用recycler view实现这些部分,但问题是我有2种视图类型,并且这些视图类型的标题添加导致了问题。 由于Realm没有RecyclerAdapter的支持,我创建了一个实现,它将使用支持RecyclerView的自定义适配器。 所以,我虽然会使用ListView并尝试为每个Object类型使用一个简单的接口来确定类型,然后根据组的位置插入Headers。 出于某种原因,Realm不允许我在扩展RealmObject的类中实现接口。 这就是这个类的样子: import com.google.gson.annotations.SerializedName; import io.realm.RealmObject; import io.realm.annotations.Ignore; import io.realm.annotations.PrimaryKey; public class TestClass extends RealmObject implements Subjects { @PrimaryKey @SerializedName(“subjectID”) private String subjectID; private String subjectDate; @SerializedName(“subjectDescription”) private String subjectDescription; public String getSubjectID() { return subjectID; } public void setSubjectID(String subjectID) { this.subjectID = subjectID; } public String […]

如何将带有recyclelerview的一个活动中的json资产文件中的arraylist收集的数据传递给另一个具有回收者视图的活动?

我有一个名为Cardview Activity ,它有一个与之关联的回收站视图,我从中获取JSON资产文件中的数据。 但是现在当我点击Cardview活动的项目时,我想将与该项目相关的数据仅发送到另一个活动,即People_List_Activity ,它再次具有recyclerView。 CardViewActivity.java package com.example.android.directory; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.widget.EditText; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; public class CardViewActivity extends AppCompatActivity { Toolbar mActionBarToolbar; private RecyclerView mainRecyclerView; private RecyclerView.Adapter mainAdapter; private RecyclerView.LayoutManager mainLayoutManager; […]

java.lang.IllegalArgumentException:可能无法回收废弃或附加的视图。 isScrap:false isAttached:true

当使用IllegalArgumentExceptionexception向回收器视图添加多个项目时,应用程序崩溃 java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true 这是exception的完整堆栈跟踪 java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:4624) at android.support.v7.widget.RecyclerView$Recycler.quickRecycleScrapView(RecyclerView.java:4697) at android.support.v7.widget.RecyclerView$LayoutManager.removeAndRecycleScrapInt(RecyclerView.java:6811) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2934) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071) at android.view.View.layout(View.java:14849) at android.view.ViewGroup.layout(ViewGroup.java:4631) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) at android.widget.FrameLayout.onLayout(FrameLayout.java:388) at android.view.View.layout(View.java:14849) at android.view.ViewGroup.layout(ViewGroup.java:4631) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627) at android.view.View.layout(View.java:14849) at android.view.ViewGroup.layout(ViewGroup.java:4631) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671) at […]

Android:我应该维护对recyclerview内部活动的引用,还是有另一种方式?

我需要在onBindViewHolder中使用上下文方法(标准示例可能像getString或getColor一样常见)。 到目前为止,我已经将上下文传递给了recyclerview的构造函数,并在变量中维护了一个引用,但在我看来,这似乎是不好的做法。 有没有办法从recyclelerview内部动态获取上下文而不将其存储为变量? public SomeRecyclerViewClass(Activity activity) { this.parentActivity = activity; }