当我打电话时,我遇到了意想不到的行为recyclerView.smoothScrollToPosition。
当我添加足够的项目并开始离开屏幕时,它无法正确滚动到底部,停留在后面 2-3 处。然后,在添加 15 左右后,当我添加一个项目时,它开始滚动到位置 0,然后下一个项目滚动到底部。添加另一个项目,它会变为 0,然后再次添加,它会变为底部。
您可以在随附的视频中看到发生了什么。一旦滚动条开始离开屏幕,也要注意它。
imgur 上的 Gif,但仅限 15 秒。 http://i.imgur.com/FnjsTY1.gifv]
整个视频可在此处观看 - https://www.dropbox.com/s/k6aaca5ue6lkk21/device-2016-05-27-130928.mp4?dl=0
我把我的应用程序拆开,直到我将其范围缩小到两件事,突然解决了测试应用程序中的问题。
我的活动布局使用布局权重,当我删除它时,它再次开始正确滚动。另外,recyclerView 中显示的 CardView 周围有一个额外的 LinearLayout。删除它也可以解决问题。
这些解决方案在我的应用程序中都不起作用,因为可能存在更多像这两个这样的“陷阱”问题。这也是我将其分解到最小量以显示错误,我的布局要复杂得多。
我不知道该怎么办,因为我什至不完全确定为什么这是错误的。我尝试过使用自定义滚动条的自定义线性布局管理器,但总是遇到同样的问题。
下面是用于重现问题的代码
主要活动
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyFragment fragment = new MyFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, fragment).commit();
}
}
Run Code Online (Sandbox Code Playgroud)
MyFragment 与 RecyclerView
public class MyFragment extends android.support.v4.app.Fragment {
RecyclerView recyclerView;
RecyclerAdapter adapter;
ViewGroup rootView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 我正在使用本教程添加本地搜索,以查找RecyclerView来自 Web 服务的数据。问题是当我搜索某些内容时,仅显示前两项。每当我搜索某些东西时,这种情况就会发生。无论我输入什么,都只显示前两项。但是当我清除SearchView总列表时,再次显示哪个是正确的。但为什么实际搜索没有过滤出正确的项目呢?
public class ProductsByCategoryActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
private RecyclerView recycler;
private ProductsByCatAdapter adapter;
private ArrayList<Model> arrayList = new ArrayList<Model>();
private StaggeredGridLayoutManager gridmanager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_productbycategory);
searchview = (SearchView) findViewById(R.id.searchview);
cd = new ConnectionDetector(ProductsByCategoryActivity.this);
recycler = (RecyclerView) findViewById(R.id.recycler);
adapter = new ProductsByCatAdapter(ProductsByCategoryActivity.this, arrayList);
recycler.setHasFixedSize(true);
gridmanager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
gridmanager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);
recycler.setLayoutManager(gridmanager);
recycler.setItemAnimator(null);
recycler.setAdapter(adapter);
searchview.setIconifiedByDefault(false);
searchview.setOnQueryTextListener(this);
searchview.setSubmitButtonEnabled(true);
searchview.setQueryHint("Search Here");
String URL = Utility.PRODBYEVERYTHING;
prepareData(URL);
}
private void prepareData(final …Run Code Online (Sandbox Code Playgroud) 这是 RecyclerView 需要膨胀的布局类型。
我使用 CircleImageView 库来实现圆形图像。(https://github.com/hdodenhof/CircleImageView)
现在我的问题是,如何让另一个背景(实际上只是一种颜色)出现在它上面(就像上图中的蓝色部分)
这是迄今为止我所取得的成就。
有什么建议么?
layout android imageview android-layout android-recyclerview
我的应用程序中有一个FloatingActionButtonover a RecyclerView。显示Button正常,但是当我单击它时,它RecyclerView下面的项目正在获取单击事件,而不是按钮。如果我将 设定RecyclerView为显示在 上FloatingActionButton,Button则按预期工作。
如何解决这个问题,并让其Button获取点击事件?
谢谢。
android onclicklistener floating-action-button android-recyclerview
当 RecyclerView 从列表到网格时如何切换布局,反之亦然。
android listview gridview android-layout android-recyclerview
我尝试在 Android 中使用RecyclerView创建一个列表。但是,我不明白为什么 RecyclerView无法正确加载数据。我尝试将我的代码与在线可用的示例进行比较,但我无法分辨示例代码和我的代码之间有什么区别。
任何人都可以帮助指出我的代码缺少什么或有什么问题吗?
活动主文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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"
tools:context="daozui.assignment3_task3.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
contact_arrangement.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/contactIcon_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/man"
android:layout_margin="10dp"/>
<TextView
android:id="@+id/contactName_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="30sp"
android:text="Name"
android:layout_toEndOf="@id/contactIcon_ID"
android:layout_marginTop="25dp"
android:layout_marginStart="25dp"/>
<TextView
android:id="@+id/contactRelationship_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFBEB9B9"
android:textSize="20sp"
android:text="Relationship"
android:layout_alignStart="@id/contactName_ID"
android:layout_below="@id/contactName_ID"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
MainActivity.Java
package daozui.assignment3_task3;
import android.app.ListFragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List; …Run Code Online (Sandbox Code Playgroud) 我有RecyclerView、ItemTouchHelper和ItemTouchHelper.Callback实例可以一起工作,并且在向左滑动时应删除应删除的所选项目(通过本教程)。移除动画有效,但只是部分有效。首先,在滑动后,该项目似乎被删除,但之后它又重新出现,并且列表保持不变:
为什么会发生呢?
我已经尝试了该网站的大多数答案,但没有得到所需的结果。
我有 recyclerview,其中包含项目列表和每行中包含的按钮。单击该按钮时,我希望删除整行并自动更新列表。
这是我的适配器类代码:
public class CartAdapter extends RecyclerView.Adapter<CartViewHolder> {
private static final String TAG = CartAdapter.class.getSimpleName();
private final Context context;
private List<Cart> itemsList;
private String id;
public CartAdapter(Context context, List<Cart> itemsList) {
this.context = context;
this.itemsList = itemsList;
}
@Override
public CartViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_items_layout, parent, false);
return new CartViewHolder(view);
}
@Override
public void onBindViewHolder(final CartViewHolder viewholder, final int position) {
final Cart cart = itemsList.get(position);
id = cart.getProductId();
AndroidNetworking.get(Constants.PRODUCT_DETAILS_ENDPOINT + id)
.setTag("Get …Run Code Online (Sandbox Code Playgroud) 这是我的代码,每行显示 2 个项目。
extends Fragment {
private RecyclerView recyclerView;
private AlbumsAdapter adapter;
private List<Album> albumList;
protected View view;
private FloatingActionButton fab;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_ebooks, container, false);
fab = (FloatingActionButton) view.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), ProductsActivity.class);
startActivity(intent);
}
});
initCollapsingToolbar();
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
albumList = new ArrayList<>();
adapter = new AlbumsAdapter(getActivity(), albumList);
RecyclerView.LayoutManager …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个扩展的自定义视图RecyclerView。RecyclerView在我的自定义视图中,我根据方向(水平或垂直)要做一些事情。
不幸的是,我找不到任何方法来了解和获得RecyclerView方向。
甚至有可能做到吗?
我知道RecyclerView方向是在其定义的LayoutManager。也许无法获得这些LayoutManager信息?
预先感谢您提供的任何帮助。