Я искал похожие вопросы и пробовал несколько ответов, не решая. У меня есть Horizontal Recycler View, отображающий названия городов и некоторые данные, проблема в том, что я помещаю гистограмму холста или диаграмму RV, как показано ниже, внутри адаптера Main Recycler View в каждой позиции и для прокрутите эту диаграмму по горизонтали. Я поместил диаграмму в режим горизонтальной прокрутки, чтобы увидеть данные диаграммы в длинном горизонтальном направлении, прокручивая эту диаграмму справа налево и наоборот, но на самом деле она не прокручивается только по горизонтали. прикоснитесь к нему, и для этой диаграммы внутри RV не прокручивается, когда прикасаетесь к ней для прокрутки (замораживания), является ли просмотр переработчика только прокруткой по горизонтали и предотвращением любой другой прокрутки внутри его дочернего элемента ??
вот мой макет элемента представления ресайклера
<?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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.core.widget.NestedScrollView
android:id="@+id/scv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<androidx.cardview.widget.CardView
android:id="@+id/main_cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardBackgroundColor="@android:color/transparent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/linearLayoutWeather"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtCityName2"
android:textColor="@color/text_light"
android:textSize="42sp"
android:textStyle="bold"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:paddingTop="10dp">
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:id="@+id/imgWeather2"
android:src="@mipmap/ic_launcher"/>
<TextView
android:paddingLeft="10dp"
android:id="@+id/txtCityTemperature2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="30 C"
android:textColor="@color/text_light"
android:textSize="24sp"
android:textStyle="bold"
android:paddingTop="45dp"/>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<HorizontalScrollView // here is the problem (doesn't scroll)
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:scrollbars="horizontal">
<WeatherChartViewBars2
android:id="@+id/bars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isScrollContainer="true"
/>
</HorizontalScrollView>
</RelativeLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>
Я попытался заставить диспетчер компоновки Recycler View прокручиваться вертикально, а горизонтальная диаграмма успешно прокручивается по горизонтали, но когда сделать RV Horizontal, диаграмма зависает без прокрутки, хотя она находится внутри горизонтальной прокрутки.
вот мой фургон
recyclerViewWeather.setLayoutManager(new LinearLayoutManager(this, RecyclerView.HORIZONTAL,
false));
adapter = new WeatherAdapter(this, cityList, dataManager);
recyclerViewWeather.setHasFixedSize(true);
recyclerViewWeather.setAdapter(adapter);
recyclerViewWeather.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE){
position = getCurrentItem();
try {
UpdateDailyWeather();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
});
PagerSnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(recyclerViewWeather);