我有自定义视图TriggerView
。当我在视图中覆盖onDraw
时,我绘制的图形有时会溢出视图的可视边界之外。所以我想将视图嵌入到ScrollView
中,以便图形可以滚动。
这是我的代码,没有任何ScrollViews
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.roberts.croberts.mantis.ShotTriggerFragment"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:clipChildren="false">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
...
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageContainer"
android:orientation="horizontal"
android:layout_weight="1">
<com.roberts.croberts.mantis.TriggerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/triggerView" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
...
</LinearLayout>
</LinearLayout>
在此屏幕截图中查看triggerView如何填充所有剩余的屏幕空间:
然后我尝试将其嵌入ScrollView:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageContainer"
android:orientation="horizontal">
<com.roberts.croberts.mantis.TriggerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/triggerView" />
</LinearLayout>
</ScrollView>
然后TriggerView的高度缩小到0.我已经尝试了match_parent
和wrap_content
的每个变体我都能想到,并且无法让它工作:
编辑 - 我刚发现的另一个有趣的事情就是我删除了容器ScrollView
和LinearLayout
并且只有TriggerView
:
<com.roberts.croberts.mantis.TriggerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/triggerView"
android:layout_weight="1"/>
然后设计选项卡显示父类是ScrollView
?:
答案 0 :(得分:0)
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageContainer"
android:orientation="horizontal">
<com.roberts.croberts.mantis.TriggerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/triggerView" />
</LinearLayout>
</ScrollView>
这里有一些问题:
高度定义为match_parent的ScrollView
没有任何意义 - 它总是应该设置为wrap_content。
LinearLayout
高度设置为match_parent也是错误的,因为此元素应定义包含ScrollView
的高度 - 将其更改为wrap_content。
最后结束 - 您的自定义视图 - 它还应将高度设置为wrap_content(或某个固定值)。如果它仍然无法正常工作,请查看此视图中的问题 - 很难说 - 夸大布局或onMeasure()
方法
答案 1 :(得分:0)
您正在尝试使用自定义视图。请发布视图类。自定义必须覆盖onDraw和onMeasure方法,并在那里做一些不同的事情。