标签: android-recyclerview

子项可见性的 RecyclerView 问题

嘿伙计们,我正在创建类似于 whatsapp 的聊天应用程序,但在 RecyclerView 中面临 Childs Visibilties 的问题,它包含我的消息和来自服务器的消息我已经在单一布局中为我的消息和服务器消息定义了两个项目,我正在设置基于可见性在布尔值上;但项目没有正确渲染

适配器类:

public class MessageDetailsListAdapter extends RecyclerView.Adapter<MessageDetailsListAdapter.MessageViewHolder> {

private List<MessageModel> messagesList;
private Activity activityContext;
public MessageDetailsListAdapter(List<MessageModel> messagesList,Activity activityContext) {
    this.messagesList = messagesList;
    this.activityContext = activityContext;
}


@Override
public int getItemCount() {
    return messagesList.size();
}

@Override
public void onBindViewHolder(MessageViewHolder messageViewHolder, final int i) {
    final MessageModel msg = messagesList.get(i);
    if(msg.getIsMessageSentbyMe())
    {
        messageViewHolder.card_linear.setVisibility(View.GONE);
        messageViewHolder.messageTextMe.setText(msg.getMsgText());
        messageViewHolder.userNameMe.setText(msg.getSenderName());
        messageViewHolder.timeStampMe.setText(msg.getSentTime());
        messageViewHolder.card_linearMe.setOnLongClickListener(new OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(activityContext.getString(R.string.brMessageDetailsDeleteItem)); …
Run Code Online (Sandbox Code Playgroud)

android android-5.0-lollipop android-recyclerview

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

如何在片段中实现 OnScrollistener

我似乎无法为我的 recyclerview 实现/扩展 OnScrollistener 以了解 recyclerview 何时到达底部

public class UpcomingFragment extends Fragment 
Run Code Online (Sandbox Code Playgroud)

如果出现以下情况,我该如何实施:

implements RecyclerView.OnScrollListener
Run Code Online (Sandbox Code Playgroud)

implements OnScrollListener
Run Code Online (Sandbox Code Playgroud)

给我一个“此处预期的接口”错误

我的构建 gradle 模块:

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "company.com.movieapp"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

建设等级项目

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module …
Run Code Online (Sandbox Code Playgroud)

android onscrolllistener android-recyclerview

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

无法在扩展片段的类中执行 AsyncTask

我的 AsyncTask、RecyclerAdapter 和 RecycleViewHolder 类在不扩展片段的活动中工作得很好。但是每当我尝试在片段类中执行 AsyncTask 时,我得到的只是一个 IDE 红旗(无法访问的语句)。有人帮助我如何在片段中执行 AsyncTask(我使用的是 Android studio 1.5.1。我搜索了答案但失败了,但得到了一个令我满意的答案。下面是我的代码。-谢谢。

public class TabFragmentNews extends Fragment {
    private static final String ARG_EXAMPLE = "this_is_a_constant";
    private String example_data;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_news, container, false);

       //Executing The Async Task Class Here
        newsupdate();

    }
    //Method For Executing The Async Task
    public void newsupdate() {
           BackgroundTask backgroundTask = new BackgroundTask(getActivity());
            backgroundTask.execute();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        example_data = getArguments().getString(ARG_EXAMPLE);
        Log.i("Fragment …
Run Code Online (Sandbox Code Playgroud)

java android android-asynctask android-fragments android-recyclerview

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

RecyclerView 列表项搜索使用 EditText 实现可过滤不起作用

搜索列表适配器.java

使用 EditText 实现可过滤的 RecyclerView 列表搜索不起作用。请查看此代码。在我的情况下,列表被过滤,但 recyclerView 适配器没有改变,因为列表保持不变。

/**
 * Created by Dell on 4/8/2016.
 */
public class SearchListAdapter extends RecyclerView.Adapter<SearchListAdapter.ViewHolder> implements Filterable {

    private Context context;
    public static ArrayList<ChapterListModel> chapterList;

    private List<ChapterListModel> orignalChapterList = new ArrayList<>();
    private final List<ChapterListModel> filteredChapterList;

    public SearchListAdapter(Context context, ArrayList<ChapterListModel> chapterList) {
        this.context = context;
        this.chapterList = chapterList;
        orignalChapterList = chapterList;
        filteredChapterList = new ArrayList<>();

    }


    @Override
    public SearchListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new ViewHolder(
                LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row_chapter_list, parent, false)
        );
    }

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

search android filtering android-edittext android-recyclerview

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

通过调用 BroadCastReceiver 更新 RecyclerView

我的片段中有一个回收器视图,每次在广播接收器中发生推送消息时,我都想更新我的回收器视图。我的问题是当接收器调用时,它用前一个项目替换新项目,但我想创建新行并且以前的项目仍然存在. 我搜索了很多,但没有成功。这是我的片段,其中包含广播接收器

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View drawer = inflater.inflate(R.layout.fragment_notif_list, container, false);
    rv = (RecyclerView) drawer.findViewById(R.id.recyclerview);
    rv.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(getActivity());
    rv.setLayoutManager(mLayoutManager);
    prefs = getActivity().getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE);


    mRegistrationBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
                // new push notification is received
                Toast.makeText(getActivity(), "Push notification is received!", Toast.LENGTH_LONG).show();

                message = intent.getStringExtra("message");
                title = intent.getStringExtra("title");
                timestamp = intent.getStringExtra("timestamp");
                Log.d("message -->", message);
                Log.d("title -->", title);
                Log.d("time -->", timestamp);
                MessageObj messageObj = …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview android-broadcastreceiver

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

Horizo​​ntalScrollView Android 中的 RecyclerView

我在水平滚动视图中使用 Recycler 视图来显示线程注释,如下所示:

Comment1 Comment1Child1 Comment1Child2 Comment1Child2Child1 Comment1Child3 Comment2

等等。

我使用以下 XML 完成了此操作:

<HorizontalScrollView
                android:id="@+id/horizontalScrollView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fillViewport="true"
                android:scrollbarSize="2dp">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/commentRV"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentStart="true"
                    android:layout_marginLeft="47dp"
                    android:minWidth="200dp" />
            </HorizontalScrollView>
Run Code Online (Sandbox Code Playgroud)

你会看到我设置了一个 200dp 的最小宽度,这样评论永远不会变得太小,而且在线程越往下,它会被推到离屏幕越远的地方。

它显示完美,但我无法水平滚动。我可以看到滚动条,但无法水平滚动。

我在 RV 中尝试了禁用 Touch 和nestedScrollingEnabled,但不确定真正的解决方案是什么。似乎没有任何效果?

任何帮助将非常感激!谢谢

android horizontal-scrolling horizontalscrollview android-recyclerview

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

滚动停止上的回收者视图

基本上我希望我的 recyclerview 自动滚动到项目未显示一半的位置。就像 googleplay 中的那个。

我写了一个代码

public void scrollToVisible(){
    int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
    View view = recyclerView.getLayoutManager().getChildAt(0);
    if (firstVisibleItemPosition > 0 && view != null) {
        int offsetTop = view.getTop();
        if (firstVisibleItemPosition - 1 >= 0 && adapter.getItemCount() > 0) {
            ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(firstVisibleItemPosition - 1, offsetTop);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题来了。我不知道把这段代码放在哪里。当 recyclerview 停止滚动时,我有一个模糊的想法,但我已经搜索了很长一段时间,但找不到这样的方法。当我把它放在 onScroll 上时会出现一些意想不到的行为

android android-recyclerview

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

如何创建类似于Instagram的底部导航栏

我是一名 android 新手,试图为我的新 android 应用程序创建一个底部导航栏,类似于 Instagram 中的导航栏。像这样Instagram.jpg单击搜索图标会在操作栏中添加一个搜索栏。我正在构建一个应用程序,用于提醒用户他的医疗预约,底部有三个导航选项卡。我已经创造了这个Screenshot_2017-06-04-11-59-56.png在这之后我被卡住了。我是否应该使用三个活动来显示相应选项卡或片段的内容,以及如何实现。

我需要一个recyclerview来显示约会。如何仅在单击底部的搜索图标时显示搜索栏。已经搜索了很多实现这一点,但找不到任何有用的东西。

任何对实现相同的代码或库的建议都会有很大帮助,谢谢。

android android-fragments instagram android-recyclerview bottomnavigationview

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

Recyclerview findViewHolderForAdapterPosition()返回null

您好我正在尝试使用以下代码在特定位置获取recyclerview Viewholder:

  val viewHolder = educationRv.findViewHolderForAdapterPosition(i) as SectionsRecyclerAdapter.ViewHolder
Run Code Online (Sandbox Code Playgroud)

问题是,回收站视图回收了不可见的物品,如果不可见,我将无法获得物品和位置0。我在询问是否尝试过此解决方案之前进行了搜索,但是无法阻止视图的回收(我知道这不是很好的解决方案,但是我被卡住了,无法更好地解决问题):

  educationRv.recycledViewPool.setMaxRecycledViews(1,0)

  override fun getItemViewType(position: Int): Int {
        return 1
  }

  override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        if (holder != null) {
            holder.setIsRecyclable(false)
   }
Run Code Online (Sandbox Code Playgroud)

通用->我有带有20个可动态添加的edittexts的recyclerview,当用户单击“保存”时,我需要获取所有edittexts值并将其保存到数组,单击按钮“ Save”时出现问题,当我尝试时仅可见两个或三个视图变得不可见返回null

java android kotlin recycler-adapter android-recyclerview

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

无法在RecyclerView中解析视图持有者

我是RecyclerView的新手,我想实现这一点,但是问题是我无法解析以下代码中的Viewholder引用,请帮帮我

class ViewAdapter : RecyclerView.Adapter<ViewAdapter.ViewHolder>(){
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewAdapter.ViewHolder {
        // return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.slider, parent, false))
    // }
     }

     override fun getItemCount(): Int {
         TODO("not implemented") 
     }

     override fun onBindViewHolder(holder: ViewAdapter.ViewHolder, position: Int) {
         TODO("not implemented") 
     }


 }
Run Code Online (Sandbox Code Playgroud)

代码截图

android kotlin android-viewholder android-recyclerview

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