Android RelativeLayout高度不遵循GridView高度

Android RelativeLayout高度不遵循GridView高度,第1张

概述我在RelativeLayout中遇到了GridView的问题,它在ScrollView中也是如此.问题是RelativeLayout的高度不遵循GridView内容的高度.当有多行时,GridView会被剪裁并出现滚动条,这是不可取的.我试图使用 Android层次结构查看器中的屏幕截图来说明我的问题.您可以看到红色RelativeLayout框如何剪切GridView的第二行.我粘贴了页面的X 我在relativeLayout中遇到了GrIDVIEw的问题,它在ScrollVIEw中也是如此.问题是relativeLayout的高度不遵循GrIDVIEw内容的高度.当有多行时,GrIDVIEw会被剪裁并出现滚动条,这是不可取的.我试图使用 Android层次结构查看器中的屏幕截图来说明我的问题.您可以看到红色relativeLayout框如何剪切GrIDVIEw的第二行.我粘贴了页面的XML布局(page.xml)和单个网格项(grIDitem.xml).我使用以下代码来扩展grIDAdapter代码中的网格项:

/ *********** grIDAdapter片段的开始********************** /

public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent){     VIEw v;        if(convertVIEw==null){            li = LayoutInflater.from(mContext);            v = li.inflate(R.layout.grIDitem,null);            //code for fetching textVIEw and imageUrl content               TextVIEw tv = (TextVIEw)v.findVIEwByID(R.ID.icon_text);            tv.setText(textContent);            ImageVIEw iv = (ImageVIEw)v.findVIEwByID(R.ID.icon_image);            //code for fetching and attaching image to imageVIEw        }        else        {            v = convertVIEw;        }        return v;}

/ *********** grIDAdapter片段结尾********************** /

/ ***********启动page.xml ********************** /

<TextVIEw androID:ID="@+ID/Title" androID:layout_weight="1"        androID:layout_wIDth="320dip"        androID:layout_height="wrap_content"         androID:singleline="false"        androID:textStyle="bold"         androID:textSize="14dip"         /><ImageVIEw androID:ID="@+ID/image"        androID:layout_below="@+ID/Title"        androID:adjustVIEwBounds="true"        androID:layout_wIDth="128dip"        androID:layout_height="96dip"         androID:layout_marginRight="4dip"        /><TextVIEw androID:ID="@+ID/name"         androID:layout_weight="1"        androID:layout_below="@+ID/Title"        androID:layout_toRightOf="@+ID/image"        androID:layout_wIDth="192dip"        androID:layout_height="wrap_content"        androID:paddingtop="2dip"        androID:textSize="12dip"         androID:paddingleft="2dip"        /><TextVIEw androID:ID="@+ID/location"         androID:layout_weight="1"        androID:layout_below="@+ID/name"        androID:layout_toRightOf="@+ID/image"        androID:layout_wIDth="192dip"        androID:layout_height="wrap_content"        androID:paddingtop="2dip"        androID:textSize="12dip"         androID:paddingleft="2dip"        /><TextVIEw androID:ID="@+ID/date1"         androID:layout_weight="1"        androID:layout_below="@+ID/location"        androID:layout_toRightOf="@+ID/image"        androID:layout_wIDth="192dip"        androID:layout_height="wrap_content"        androID:paddingtop="2dip"        androID:textSize="10dip"         androID:paddingleft="2dip"        />          <TextVIEw androID:ID="@+ID/date2"         androID:layout_weight="1"        androID:layout_below="@+ID/date1"        androID:layout_toRightOf="@+ID/image"        androID:layout_wIDth="192dip"        androID:layout_height="wrap_content"        androID:paddingtop="2dip"        androID:textSize="10dip"         androID:paddingleft="2dip"        /><button androID:ID="@+ID/button1"        androID:text="buttonText1"        androID:layout_weight="1"        androID:layout_below="@+ID/image"        androID:layout_height="wrap_content"        androID:layout_wIDth="wrap_content"        androID:layout_marginleft="96dip"               /><button androID:ID="@+ID/button2"        androID:text="buttonText2"        androID:layout_weight="1"        androID:layout_below="@+ID/image"        androID:layout_toRightOf="@+ID/button1"        androID:layout_height="wrap_content"        androID:layout_wIDth="wrap_content"        /><button androID:ID="@+ID/button3"        androID:text="Text"        androID:layout_weight="1"        androID:layout_below="@+ID/image"        androID:layout_toRightOf="@+ID/button2"        androID:layout_height="wrap_content"        androID:layout_wIDth="wrap_content"        /><GrIDVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"         androID:ID="@+ID/grIDvIEw"        androID:layout_wIDth="fill_parent"         androID:layout_height="fill_parent"        androID:layout_below="@+ID/button1"        androID:layout_weight="1"        androID:numColumns="auto_fit"        androID:verticalSpacing="10dip"        androID:horizontalSpacing="10dip"        androID:stretchMode="columnWIDth"        androID:gravity="center"        />

/ ***********结束页面文件********************** /

/ ***********启动grIDitem.xml ********************** /

机器人:重力= “CENTER_HORIZONTAL” >

/ ***********结束grIDitem.xml ********************** /

你能告诉我应该怎样做才能让relativeLayout的高度跟随grIDVIEw的全长?

谢谢,
Kuntal![替代文字] [1]

这是截图:
http://tinypic.com/r/98rs4n/4

解决方法 到目前为止,我能够解决这个问题的唯一方法是有点软糖.

一旦知道将要加载到网格中的项目数量,就可以手动设置高度:

final int grIDWIDth = myGrID.getWIDth();final int cellWIDthDP = 50;final int cellHeightDP = 80;final Resources r = getResources();final double cellWIDthPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,cellWIDthDP,r.getdisplayMetrics());final double cellHeightPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,cellHeightDP,r.getdisplayMetrics());final int itemsPerRow = (int) Math.floor((double) grIDWIDth / cellWIDthPx);final int rowCount = (int) Math.ceil((double) itemCount / itemsPerRow);final LayoutParams prm = myGrID.getLayoutParams();prm.height = (int) Math.ceil((double) rowCount * cellHeightPx);myGrID.setLayoutParams(prm);
总结

以上是内存溢出为你收集整理的Android RelativeLayout高度不遵循GridView高度全部内容,希望文章能够帮你解决Android RelativeLayout高度不遵循GridView高度所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1135305.html

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

发表评论

登录后才能评论

评论列表(0条)

保存