ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android-Imageview和textview不在视图中显示?

2019-10-11 05:25:01  阅读:306  来源: 互联网

标签:android-gridview android textview android-imageview


我正在尝试增加一个布局并将其添加到可拖动的网格视图中,但是我得到的只是一个黄色正方形.可拖动视图的addView()方法仅拾取单个视图.例如,如果我添加textView或imageView,则将显示textview.如果添加线性布局,则只会显示linearlayout的背景(又称linearlayout).但不是linearlayouts子级(图像和文本视图). dgv(可拖动Gridview)扩展了ViewGroup,这是代码:

线性布局的添加:

LayoutInflater inflater = LayoutInflater.from (getActivity ());
View cellView = inflater.inflate (R.layout.celllayout, null);
if (cellView != null)
Log.d ("Snap", "cellView != null");
TextView textView = (TextView) cellView.findViewById (R.id.grid_label);
textView.setText (word);
ImageView imageView =  (ImageView) cellView.findViewById (R.id.grid_image);
imageView.setImageBitmap (getThumb (word));

dgv.addView (cellView);

线性布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFF000"
android:gravity="center"
android:orientation="vertical"
android:padding="5dp" >

<TextView
android:id="@+id/grid_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dip"
android:text="@string/grid_label"
android:textColor="#c31d36"
android:textSize="15sp" />
<ImageView
android:id="@+id/grid_image"
android:layout_width="150dip"
android:layout_height="150dip"
android:layout_gravity="center_horizontal"
android:contentDescription="An Image" 
android:background="#ffff0000"/>

</LinearLayout>

DGV:

@Override
public void addView (View child) {
    super.addView (child);
    Log.d ("Draggable", "Draggable-addView");

    newPositions.add (-1);
}

有任何想法吗?我需要提供更多信息吗?我唯一的解决方案是自定义imageview并覆盖ondraw并执行我想要的操作.但这是如此骇人且不可扩展.任何帮助,将不胜感激.

解决方法:

这是DraggableGridView的一个已知问题,不幸的是,我还没有解决.当我写DGV时,我并不完全理解视图的布局方式.您可以尝试让DGV在布置每个孩子之前对其进行测量.添加类似:

getChildAt(i).measure(MeasureSpec.makeMeasureSpec(childSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(childSize, MeasureSpec.EXACTLY));

在此行的布局之前:

getChildAt(i).layout(xy.x, xy.y, xy.x + childSize, xy.y + childSize);

标签:android-gridview,android,textview,android-imageview
来源: https://codeday.me/bug/20191011/1890538.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有