android– 片段中的可滚动视图

android– 片段中的可滚动视图,第1张

概述我已经被困在这几天了,无法弄清楚我做错了什么(希望这不是我错过的蠢事).要求我有一个FragmentPager,它包含带有LinearLayout的片段.布局有一个按钮和一个可以根据用户导航更改的视图.所有视图(如GridView和ListView)都能完美运行.但是我需要制作另一个适合Fragment的视图,它在

我已经被困在这几天了,无法弄清楚我做错了什么(希望这不是我错过的蠢事).

要求

我有一个FragmentPager,它包含带有linearLayout的片段.布局有一个按钮和一个可以根据用户导航更改的视图.

所有视图(如GrIDVIEw和ListVIEw)都能完美运行.但是我需要制作另一个适合Fragment的视图,它在概念上有点不同.视图必须是垂直可滚动的,因为它的高度可能会比屏幕大小更大.我不关心视图是以编程方式创建还是动态地从.xml中膨胀.我尝试了两种方法,两者都给出了相同的结果.

解决方案1(更为可取)

我试图制作一个自定义视图并将其推入ScrollVIEw.这是相关的.xml:

<?xml version="1.0" enCoding="utf-8"?><ScrollVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@+ID/scroller"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    androID:fillVIEwport="true" >    <com.myPackage.MyVIEw        androID:layout_wIDth="fill_parent"        androID:layout_height="wrap_content" ></com.myPackage.MyVIEw></ScrollVIEw>

我使自定义视图显示一个非常大的矩形,因此它超出了屏幕大小.
 MyVIEw的代码:

package com.myPackage.MyVIEw;import androID.content.Context;import androID.graphics.Canvas;import androID.graphics.color;import androID.graphics.Paint;import androID.util.AttributeSet;import androID.vIEw.VIEw;public class MyVIEw extends VIEw {    public MyVIEw(Context context) {        super(context);    }    public MyVIEw(Context context, AttributeSet attrs) {        super(context, attrs);    }    @OverrIDe    protected voID onDraw(Canvas canvas) {        Paint paint = new Paint();        paint.setcolor(color.RED);        canvas.drawRect(0, 0, 100, 8000, paint);    }}

这个问题是ScorllVIEw不会滚动.

我尝试删除fillVIEwport(正如我在另一个答案中看到的那样)导致什么都没有显示,
我还尝试在ScrollVIEw内部和外部添加布局,但没有.尝试所有“fill_parent”/“wrap_content”组合也导致非滚动ScrollVIEw.

我究竟做错了什么?

解决方案2(更不可取)

我可以强制(粗暴地)将视图的概念转换为ListVIEw,它可以滚动得很好,但我无法获取列表中的视图来显示我的自定义视图.调试时,我注意到onDraw从未被调用过.我是否需要在其他地方实现视图的绘制,以便在ListVIEw中绘制?

解决方法:

Iain_b是正确的,当绘制视图时,它将剪切不在其布局范围内的任何内容.对于自定义视图,通常通过重写OnMeasure方法来完成.目前,您将自定义视图设置为其高度的wrap_content,在您的情况下,将导致高度为0的视图(它没有内容).不幸的是,重写OnMeasure意味着您不能使用自定义视图的高度和宽度属性,但是当AndroID执行布局传递时,您将在OnMeasure调用中获得更好的控制.

这些都在AndroID文档中描述:Custom Components

总结

以上是内存溢出为你收集整理的android – 片段中的可滚动视图全部内容,希望文章能够帮你解决android – 片段中的可滚动视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117706.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存