AAChartCore-Kotlin icon indicating copy to clipboard operation
AAChartCore-Kotlin copied to clipboard

为什么我这个布局和代码不能显示图表

Open Xiyujiang0203 opened this issue 2 years ago • 0 comments

<data>

</data>

<com.scwang.smart.refresh.layout.SmartRefreshLayout
    android:id="@+id/refreshLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.scwang.smart.refresh.header.ClassicsHeader
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:ignore="ScrollViewCount">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            >

            <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
                android:id="@+id/aa_chart_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            </com.github.aachartmodel.aainfographics.aachartcreator.AAChartView>
            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:overScrollMode="never"
                android:background="#fff" />
        </LinearLayout>
    </androidx.core.widget.NestedScrollView>

    <com.scwang.smart.refresh.footer.ClassicsFooter
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>

class SortFragment : Fragment() { private lateinit var sortViewModel: SortViewModel private var binding: FragmentSortBinding? = null

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View {
    binding = FragmentSortBinding.inflate(inflater, container, false)
    return binding!!.root
}

override fun onDestroyView() {
    super.onDestroyView()
    binding = null
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    observeUsers()

    setupRefreshLayout()

}

private fun setupRefreshLayout() {

    binding?.refreshLayout?.setRefreshHeader(ClassicsHeader(context))
    binding?.refreshLayout?.setRefreshFooter(ClassicsFooter(context))
    binding?.refreshLayout?.setOnRefreshListener { refreshlayout ->
        observeUsers()
        refreshlayout.finishRefresh(0)

    }
    binding?.refreshLayout?.setOnLoadMoreListener { refreshlayout ->
        refreshlayout.finishLoadMore(0)

    }
}

private fun drawChart() {
    val aaChartModel = AAChartModel()
        .chartType(Bar)
        .title("title")
        .subtitle("subtitle")
        .backgroundColor("#4b2b7f")
        .series(
            arrayOf(
                AASeriesElement()
                    .name("Tokyo")
                    .data(
                        arrayOf(
                            7.0,
                            6.9,
                            9.5,
                            14.5,
                            18.2,
                            21.5,
                            25.2,
                            26.5,
                            23.3,
                            18.3,
                            13.9,
                            9.6
                        )
                    ),
                AASeriesElement()
                    .name("NewYork")
                    .data(
                        arrayOf(
                            0.2,
                            0.8,
                            5.7,
                            11.3,
                            17.0,
                            22.0,
                            24.8,
                            24.1,
                            20.1,
                            14.1,
                            8.6,
                            2.5
                        )
                    ),
                AASeriesElement()
                    .name("London")
                    .data(
                        arrayOf(
                            0.9,
                            0.6,
                            3.5,
                            8.4,
                            13.5,
                            17.0,
                            18.6,
                            17.9,
                            14.3,
                            9.0,
                            3.9,
                            1.0
                        )
                    ),
                AASeriesElement()
                    .name("Berlin")
                    .data(
                        arrayOf(
                            3.9,
                            4.2,
                            5.7,
                            8.5,
                            11.9,
                            15.2,
                            17.0,
                            16.6,
                            14.2,
                            10.3,
                            6.6,
                            4.8
                        )
                    )
            )
        )
    binding?.aaChartView?.aa_drawChartWithChartModel(aaChartModel)

}

private fun observeUsers() {
    // 创建 sortViewModel 对象
    sortViewModel = ViewModelProvider(this)[SortViewModel::class.java]
    // 观察 getUsers 方法返回的 LiveData 对象
    sortViewModel.getUsers().observe(viewLifecycleOwner) { resource ->
        when (resource.status) {
            Resource.Status.LOADING -> {}

            Resource.Status.SUCCESS -> {

                val data = resource.data?.body().toString()
                // 从字符串中提取JSON数据
                val regex = "\\[(.*?)]".toRegex()
                val matchResult = regex.find(data)
                val jsonData = matchResult?.value
                val gson = Gson()
                val userData = gson.fromJson(jsonData, User::class.java)

                Log.d("firstTAG", "onViewCreated: $userData")

                drawChart()

            }

            Resource.Status.ERROR -> {
                "请连接校园网".showToast()
                // 处理错误状态
            }
        }
    }
}

}

Xiyujiang0203 avatar Oct 23 '23 06:10 Xiyujiang0203