小编Den*_*Den的帖子

嵌套的RecyclerView滚动问题

在我的应用程序中,我有垂直父级,RecyclerView其中包含很少的水平子级ViewHolders.但我有非常烦人的滚动问题 - 在我垂直滚动父RV之后我想滚动我的一个孩子RV但父母只是拦截所有的动作事件,直到我从屏幕上移开我的手指然后把它放回去.这是令人讨厌的行为的例子.

https://i.imgur.com/dPtmAXD.gif

我尝试了这个问题的每个解决方案 - 嵌套的RecyclerView.如何在子级RecyclerView滚动时阻止父级RecyclerView滚动?

什么都不适合我.

看起来Google Play Market具有相同的RV层次结构,但是滚动非常好.我试图从其他主题实现一些解决方案,但没有任何工作按预期.

我不知道我应该发布什么代码,但这里是我的父RV的ViewHolder示例与嵌套RV.

private class UserEventsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private RecyclerView rvUserEvents;
        private HomeUserEventsRVAdapter rvAdapter;

        public UserEventsViewHolder(View v) {
            super(v);

            rvUserEvents = v.findViewById(R.id.rv_user_events);
            rvUserEvents.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.HORIZONTAL, false));
            rvUserEvents.setNestedScrollingEnabled(false);
            rvUserEvents.setRecycledViewPool(viewPool);
            rvAdapter = new HomeUserEventsRVAdapter(presenter);
            rvUserEvents.setAdapter(rvAdapter);

            v.findViewById(R.id.btn_all_user_events).setOnClickListener(this);
        }

        private void bind(UserItemViewModel userItem) {
            rvAdapter.updateAdapter(userItem);
        }

        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_all_user_events:
                    presenter.openUserEventsList();
                    break;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑:我的活动的XML代码

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_root"
android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android scroll android-recyclerview nestedrecyclerview

13
推荐指数
1
解决办法
2084
查看次数

android - 在ViewPager中将数据从Activity传递给Fragment

我有一个简单的Activity,其中包含TabLayout,ViewPager和2个片段.这是我的活动:

public class ManagementCompanyOverviewActivity extends BaseActivity implements ManagementCompanyOverviewView {

    private ManagementCompanyVPAdapter mVPAdapter;
    private TabLayout mTLContent;
    private ViewPager mVPContent;

    @InjectPresenter
    ManagementCompanyPresenter mPresenter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_management_company);

        mVPAdapter = new ManagementCompanyVPAdapter(getSupportFragmentManager());

        mTLContent = (TabLayout) findViewById(R.id.tl_company_content);

        mVPContent = (ViewPager) findViewById(R.id.vp_company_content);
        mVPContent.setAdapter(mVPAdapter);
        mTLContent.setupWithViewPager(mVPContent);
    }

    @Override
    public void onAboutCompanyInfoReceivedFromServer(AboutCompanyViewModel model) {

    }
Run Code Online (Sandbox Code Playgroud)

Activity有一个Presenter(我正在使用Moxy),Presenter发送请求,得到答案,创建JavaObject(视图模型)getViewState()并将此模型传递给activity.我需要将此模型从Activity传递给我的一个片段.

Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_about_company, container, false);

    mTVName = (TextView) view.findViewById(R.id.tv_company_name);
    mTVDirector = (TextView) …
Run Code Online (Sandbox Code Playgroud)

android listener fragment android-viewpager

11
推荐指数
3
解决办法
2万
查看次数

android-TabLayout动态调整大小

我的应用程序中有一个TabLayout,它包含自定义视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:orientation="horizontal">

        <com.myproject.app.utils.commons.IconImageView
            android:id="@android:id/icon"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_marginRight="14dp"
            android:layout_marginEnd="14dp"
            app:iconStateListColor="@color/color_order_tab"/>

        <TextView
            android:id="@android:id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/color_order_tab"
            android:textSize="14sp"
            android:fontFamily="sans-serif-medium"/>

    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我只想在选项卡上显示文本(已完成)并动态调整这些选项卡的大小,是否有任何方法可以这样做?如果使用app:tabMode="fixed"选项卡,请不要调整大小,如果使用选项卡,则app:tabMode="scrollable"选项卡始终位于屏幕左侧。如果我 android:layout_width="wrap_content"android:layout_gravity="center_horizontal"- TabLayout没有填满屏幕。所以我需要:

  • 出现或消失文本时调整标签的大小;
  • 在任何情况下,选项卡都应填满屏幕。

android android-tablayout

3
推荐指数
1
解决办法
1331
查看次数

android - RecyclerView中的单个RadioButton

我有一个仅包含RadioButton的物品的RecyclerView,我的适配器创建了一些位置的RecyclerView - 可以在每个位置使用RadioButton 5-10个位置.但是这些RadioButton不在同一个RadioGroup中,因为它们都处于不同的RecyclerView位置.有没有办法为它设置单一选择?

PS:我发现这只在recyclerview中选择了一个radiobutton,但它完全是关于RecyclerView位置的RadioGroups,我只有RadioButtons.

java android android-radiobutton android-recyclerview

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

android-CardView在RecyclerView中调整动画大小

我有一个CardCard作为其中的RecyclerView项目。CardView具有箭头图标以在同一CardView中显示详细信息,但我不想将其设置为GONE或VISIBLE,因为此操作没有美观的动画。我试图android:animateLayoutChanges="true"在CardView上进行设置,但得到了以下信息:(这不是我的屏幕,但包含相同的问题)

在此处输入图片说明

但是,一旦我再次单击箭头以折叠辅助文字,下面的卡片就会与我在动画过程中单击的卡片重叠。如何避免这种重叠?我试图打电话给我,TransitionManager.beginDelayedTransition(CardView);但看起来对我没有帮助。

animation android android-recyclerview cardview

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

java.lang.NoSuchMethodException: &lt;init&gt;

我检查了调试版本中的所有内容,一切正常,但是当我生成 Signed Apk 时,出现此错误:

java.lang.NoSuchMethodException: <init> [interface org.simpleframework.xml.core.Contact, interface org.simpleframework.xml.Attribute, class org.simpleframework.xml.stream.Format]
java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [interface org.simpleframework.xml.core.Contact, interface org.simpleframework.xml.Attribute, class org.simpleframework.xml.stream.Format]
at retrofit2.converter.simplexml.SimpleXmlRequestBodyConverter.convert(SimpleXmlRequestBodyConverter.java:43)
at retrofit2.converter.simplexml.SimpleXmlRequestBodyConverter.convert(SimpleXmlRequestBodyConverter.java:26)
at retrofit2.ParameterHandler$Body.apply(ParameterHandler.java:297)
at retrofit2.ServiceMethod.toRequest(ServiceMethod.java:109)
at retrofit2.OkHttpCall.createRawCall(OkHttpCall.java:178)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:162)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:171)
at rx.internal.operators.OperatorSubscribeOn$SubscribeOnSubscriber$1.request(OperatorSubscribeOn.java:109)
at rx.Subscriber.setProducer(Subscriber.java:211)
at rx.internal.operators.OperatorSubscribeOn$SubscribeOnSubscriber.setProducer(OperatorSubscribeOn.java:105)
at rx.Subscriber.setProducer(Subscriber.java:205)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10256)
at rx.internal.operators.OperatorSubscribeOn$SubscribeOnSubscriber.call(OperatorSubscribeOn.java:100)
at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:230)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoSuchMethodException: <init> [interface org.simpleframework.xml.core.Contact, interface …
Run Code Online (Sandbox Code Playgroud)

java android nosuchmethoderror

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