Aug*_*nce 5 android mpandroidchart
我正在使用 MPAndroidChart 在片段内创建条形图,但图表高度仅占整个屏幕的一小部分。另外,当高度设置为数字时,它可以正常工作,但这不是我想要的解决方案。问题是什么?下面是片段布局代码。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$PlaceholderFragment">
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barchart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
编辑:抱歉缺乏详细信息,我在我的项目中使用了带有操作栏微调器模板的选项卡式活动。
<android.support.design.widget.AppBarLayout android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"
app:layout_scrollFlags="scroll|enterAlways">
<Spinner android:id="@+id/spinner" app:popupTheme="@style/AppTheme.PopupOverlay"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView android:id="@+id/container"
android:layout_width="match_parent" android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
Run Code Online (Sandbox Code Playgroud)
我还有正在运行的应用程序的图像
我知道这是一个较旧的问题,但我遇到了同样的问题 - 我以编程方式创建的图表根据需要很宽,但高度不是从父 LinearLayout 继承的。
解决方案涉及在将高度添加到父级视图后以编程方式设置高度,然后重新绘制它(invalidate())。
布局:
<LinearLayout
android:id="@+id/short_performance_chart"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:background="@drawable/graph_gradient"/>
Run Code Online (Sandbox Code Playgroud)
代码:
LinearLayout chartHolder = (LinearLayout) getActivity().findViewById(R.id.short_performance_chart);
BarChart mChart = (BarChart) initializeBarChart(); //just populating data, etc
chartHolder.addView(mChart);
// Due to the fact that we are in a fragment we have to reset the height
mChart.getLayoutParams().height = android.view.ViewGroup.LayoutParams.MATCH_PARENT;
mChart.invalidate();
Run Code Online (Sandbox Code Playgroud)