相关疑难解决方法(0)

在Android上添加新项目到列表视图的顶部?

Android具有脚本模式,允许在将新数据添加到适配器时自动将列表视图滚动到底部.

可以以某种方式反转,以便在列表顶部自动添加新项目("逆转录模式")

方法stackFromBottom似乎是正确的,但不会在输入更改时自动滚动.

有没有人有一些示例代码,其中列表不断添加总是插入顶部的东西?我在这里走在正确的轨道上吗?

更新

谢谢你的回答,这让我想得更多.其实.我想让新条目显示在顶部,但屏幕仍然显示用户正在查看的项目.用户应主动滚动到顶部以查看新项目.所以我觉得成绩单模式不是我想要的.

android listview

32
推荐指数
4
解决办法
6万
查看次数

在notifyDataSetChanged不能在android中工作之后的smoothScrollToPosition

我有一个自定义适配器用于ListView设置并正常工作.在按钮上单击基础数据中的某些内容,因此需要notifyDataSetChanged来刷新ListView.精细.但我也希望ListView滚动到发生更改的行.为此,我在notifyDataSetChanged之后立即调用smoothScrollToPosition.那是行不通的.

如果我不调用notifyDataSetChanged然后滚动工作,所以通知阻止滚动.我可能正在与将来处理的事件进行斗争.任何人都可以给我一个关于出错的指针吗?

android listview

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

smoothScrollToPositionFromTop()并不总是像它应该的那样工作

我已经尝试了一段时间来使smoothScrollToPositionFromTop()工作,但它并不总是滚动到正确的位置.

我在一个布局中有一个ListView(有10个项目),旁边有10个按钮,所以我可以滚动到列表中的每个项目.通常当我向后或向前滚动一个位置时它工作正常,但是当我尝试向后或向前滚动超过3个位置时,ListView并不完全在所选位置结束.当它失败时,通常会关闭0.5到1.5个项目,当滚动失败时它不能真正预测.

在notifyDataSetChanged无法在android中工作之后我也检查了smoothScrollToPosition,但是这个修复程序对我不起作用而且我不更改任何数据.

我真的想自动滚动到选定的列表项目,但不是我无法弄清楚如何.有没有人之前有这个问题,知道如何解决它?

android

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

smoothScrollToPosition在嵌套的RecyclerView中不起作用

我有一个recyclerView,每个项目都是一个recyclerView。我想在特定条件下滚动到内部recyclerView的自定义位置。我在innerRecyclerView上使用了这段代码,但是没有用:

innerRecyclerView.smoothScrollToPosition(position); 
Run Code Online (Sandbox Code Playgroud)

和这个:

innerRecyclerView.scrollToPosition(position); 
Run Code Online (Sandbox Code Playgroud)

还有这个:

layoutManager.scrollToPositionWithOffset(position, offset);
Run Code Online (Sandbox Code Playgroud)

现在我有两个问题:

1)是否可以滚动到内部recyclerView的自定义位置?

2)如果可能的话,怎么办?

这是初始化主recyclerView:

LinearLayoutManager layoutManager = new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false);
        adapter = new FreightsListRVAdapter(new FreightListCallBack(), new FreightListVHFactory());
        rvFreightsList.setLayoutManager(layoutManager);
        rvFreightsList.setItemViewCacheSize(30);
        rvFreightsList.setNestedScrollingEnabled(true);
        rvFreightsList.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

这是初始化innerRecyclerview:

LinearLayoutManager layoutManager = new LinearLayoutManager(itemView.getContext(), RecyclerView.VERTICAL, false);
        layoutManager.setItemPrefetchEnabled(true);
        layoutManager.setInitialPrefetchItemCount(7);
        rvFreights.setNestedScrollingEnabled(false);
        rvFreights.setLayoutManager(layoutManager);
        rvFreights.setItemViewCacheSize(20);

        adapter = new FreightsRVAdapter(new FreightCallBack(), new FreightSingleVHFactory());
        rvFreights.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

这是我的主要recyclerView适配器:

public class FreightsListRVAdapter extends ListAdapter<FreightListModel, FreightListVH> {

    private final FreightListVHFactory mFactory;
    private final PublishSubject<FreightListVHAction> mClickUserPS = PublishSubject.create();

    @Inject
    public FreightsListRVAdapter(@NonNull FreightListCallBack diffCallback, FreightListVHFactory factory) {
        super(diffCallback);
        mFactory = factory; …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview nestedrecyclerview

6
推荐指数
1
解决办法
388
查看次数

如何滚动到recyclerview内的偏移量?

如何使用recyclelerview内的偏移滚动到特定位置?

我用过

public LinearLayoutManager linearlayoutmanager;
linearlayoutmanager.scrollToPositionWithOffset(0, scrolled);
Run Code Online (Sandbox Code Playgroud)

我也用过scrollto

mRecyclerView.scrollTo(0, scrolled);
Run Code Online (Sandbox Code Playgroud)

我也使用了smoothScrolltoposition

mRecyclerView.smoothScrollToPosition(scrolled);
Run Code Online (Sandbox Code Playgroud)

但似乎没有人为我工作.

如果有人对此有所了解,请帮助我

UPDATE

功能我在哪里设置我的Recyclerview的适配器

public void Nearby_Search_requestData() {
    OkHttpClient client = new OkHttpClient();
    client = MySSLTrust.trustcert(getActivity());

    RestAdapter adapter = new RestAdapter.Builder().setEndpoint(SEARCH_MERCHANT_ENDPOINT).setClient(new OkClient(client)).build();
    final RetrofitInterface api = adapter.create(RetrofitInterface.class);
    if (api != null) {
        api.post_Nearby_Search(page.toString(), new Callback<Nearby_Search_All>() {
            @Override
            public void success(final Nearby_Search_All server_data, Response response) {
                if (server_data.getSuccess() == 1) {
                    if (server_data.getResults().size() == 0) {
                        if (page != 0) {
                            mRecyclerView.scrollToPosition(firstVis);
                        } else {
                            Log.d("hii", "zero");
            //                NO_MERCHANT.setVisibility(View.VISIBLE); …
Run Code Online (Sandbox Code Playgroud)

android scroll android-recyclerview

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

Android listview如何将所选项目滚动到顶部

我想在Android中创建一个ListView.当我点击某个项目时,我希望它将其滚动到顶部.我怎样才能做到这一点?这是我正在尝试的Activity类,项目选择工作正常,但它不会滚动到顶部

public class MyListActivity extends ListActivity {
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
        "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
        "Linux", "OS/2" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        String item = (String) getListAdapter().getItem(position);
        //l.setSelection(2);

        Toast.makeText(this, position + " selected", Toast.LENGTH_LONG).show();
        //l.smoothScrollToPosition(5);

    }
}
Run Code Online (Sandbox Code Playgroud)

android android-layout android-activity

2
推荐指数
1
解决办法
7752
查看次数