我有这样的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/shadow_height"
android:background="@drawable/shadow_top" />
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<dk.somefirm.MyView
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</HorizontalScrollView>
</RelativeLayout>
MyView类扩展了View并在其onDraw方法中创建了所有内容。使用添加的android:fillViewport =“true”参数,它现在可以很好地绘制MyView,但滚动不起作用。 MyView有时比屏幕宽,应该是水平可滚动的。
我猜这是因为视图没有内容,因此宽度为零。我试图在我的代码中设置这样的宽度:
ViewGroup.LayoutParams lp = getLayoutParams();
lp.width = (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ls, getResources().getDisplayMetrics()) * (savingPoints.size() + 1));
setLayoutParams(lp);
宽度是动态的,因此它必须依赖于列表元素,但它没有帮助,它不可滚动。
请问有什么问题吗?
谢谢你 索伦
答案 0 :(得分:0)
将您的视图置于如下线性布局
中<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="@dimen/shadow_height"
android:background="@drawable/shadow_top" />
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<dk.somefirm.MyView
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
</HorizontalScrollView>