我需要实现recyclerview的功能,以便像圆圈一样显示最后一个项目的后一个项目
答案 0 :(得分:1)
建议您尝试遵循适配器类中的更改。将getItemCount设置为返回非常大的值,例如
function filterData(chartInstance, leftLegendTime) {
let diff = chartInstance.data.labels[0].getTime() - leftLegendTime
// Check min 10 sec difference between graph and zoomed out graph to get safe from over updates
if (!chartInstance.data.labels || diff === 0 || diff <= 10000) return
let allLabels = chartInstance.data.datasets[0].allLabels
// Matching graph's left axis start...
let leftIndex = allLabels.map(
(elem) => parseInt(elem.getTime()/1000)
).indexOf(parseInt(leftLegendTime/1000))
if (leftIndex === -1) return;
chartInstance.data = {...chartInstance.data, labels: allLabels.slice(leftIndex)}
for (let i = 0;i < chartInstance.data.datasets.length; i++) {
chartInstance.data.datasets[i] = {
...chartInstance.data.datasets[i],
data: chartInstance.data.datasets[i].allData.slice(leftIndex)
}
}
chartInstance.update()
}
// ...in graphOptions:
scales: {
xAxes: [{
id: 'x-axis-0',
type: 'time',
beforeUpdate: function (chart) {
const scale = chart.chart.scales['x-axis-0']
if (scale.margins) {
const left = scale.getValueForPixel(scale.left)
filterData(chart.chart, left._d.getTime())
}
}
}],
zoom: {
enabled: true,
drag: false, // cannot have drag-to-zoom and pan at once
mode: 'x',
rangeMax: {
x: new Date(Date.now() + 1000)
},
rangeMin: {
x: new Date(Date.now() - 900 * 1000) // eg. to show max history...
}
}
Integer.MAX_VALUE
然后要获得实际的项目位置,需要进行模运算
@Override
public int getItemCount() {
return Integer.MAX_VALUE;
}