android - MP android图表线图布局参数
问题描述
我想绘制 12 个折线图。所以我在滚动视图中放置了一个线性布局。我将使用 12 个图表填充线性布局。我希望每个图表的高度等于屏幕的宽度(因为我在横向模式下查看图表)。我的代码是这样的:
class MainActivity : AppCompatActivity() {
private var screenHeight = 0
private var screenWidth = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
setContentView(R.layout.activity_main)
val displayMetrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(displayMetrics)
screenWidth = displayMetrics.widthPixels
screenHeight = displayMetrics.heightPixels
Log.i("width", screenWidth.toString())
Log.i("height", screenHeight.toString())
val chartHeight = screenHeight / 12
for (i in 0..11){
val lineChart = LineChart(this)
lineChart.layoutParams.height = chartHeight //line 33 giving error
linearLayout.addView(lineChart)
}
}
}
我有以下问题:
我想将折线图的宽度设置为,
LayoutParams.match_parent
但是当 IDE 要求我导入类LayoutParams
时,我得到的选项是RelativeLayout
,和许多其他选项FrameLayout
,ViewGroup
但其中任何一个都与LineChart
.我提到了这个,但它不适用于 LineChart。我不知道为什么。我收到此错误:
AndroidRuntime:致命异常:主进程:atharva.example.com.graphlist,PID:29323 java.lang.RuntimeException:无法启动活动 ComponentInfo{atharva.example.com.graphlist/atharva.example.com.graphlist.MainActivity}: java.lang.NullPointerException:尝试在空对象引用上写入字段“int android.view.ViewGroup$LayoutParams.width” 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415) 在 android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5476) 在 android.app。 ActivityThread.access$1200(ActivityThread.java:229) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1827) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:7329) 在 java。 com.android.internal.os.ZygoteInit 中的 lang.reflect.Method.invoke(本机方法)$MethodAndArgsCaller.run(ZygoteInit.java:1230) com.android.internal.os.ZygoteInit。主要(ZygoteInit.java:1120)
引起:java.lang.NullPointerException:尝试 在 atharva.example.com.graphlist.MainActivity$override.onCreate(MainActivity.kt: 33) atharva.example.com.graphlist.MainActivity$override.access$dispatch(MainActivity.kt) atharva.example.com.graphlist.MainActivity.onCreate(MainActivity.kt:0) 在 android.app.Activity.performCreate(Activity.java:6904) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
- 第0行的错误(参考上面的错误日志)是什么意思?
请帮助我通过 kotlin 代码为 MP Android LineChart 等自定义视图设置布局参数
解决方案
您没有设置图表的宽度值。尝试创建新LayoutParams
对象。这对我有用。
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams([your_width], [your_height]);
lineChart.setLayoutParams(params);
希望能帮助到你。
推荐阅读
- android - '二进制 XML 文件第 2 行:二进制 XML 文件第 2 行:错误膨胀类 android.support.design.widget.FloatingActionButton'
- python - 有没有一种简单的方法可以删除数据框行中的字符串结尾?
- javascript - Pro Asp.net core MVC 如何创建视图列表并将数据列表传递给控制器(如何将数据列表从视图传递给控制器)
- python - 输入字段问题 - 关闭窗口但保持 Python 运行
- c++ - 在 CLION 中索引 PQXX
- c# - 防止事件以派生形式触发
- html - 如何设置由 ngFor 创建的元素的 id?
- scala - 如何从 scala 中的函数返回新列表?
- c# - WPF代码隐藏动画c#
- jquery - 尝试验证用户输入时的基本 jQuery 语法问题 - 请告知