Android动态添加View的问题解决方法_Android

后台代码

复制代码 代码如下:

    private void ChangeView()
    {
        ly.removeAllViews();
        LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.grid,null);
        GridView gridview = (GridView)layout.findViewById(R.id.gridview);
        gridview.setAdapter(new ItemAdapter(MainActivity.this));
        gridview.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView arg0, View arg1,
                    int arg2, long arg3) {
            }
            public void onNothingSelected(AdapterView arg0) {
            }
        });

        ly.addView(gridview);
    }

 代码说明:

        a).  ly为main.xml中id为ContentView的LinearLayout,即需动态添加View的容器

        b).  ItemAdapter为Grid填充数据的辅助类

      现象

        正常

      如果把grid.xml中GridView的代码直接复制粘贴到main.xml中LinearLayout容器内没有任何问题,布局正常。

        不正常

      如上动态添加android:layout_height="fill_parent"就失效,不管这里设置绝对数值如300dp也不行,GridView始终只显示有Item的内容,即容器内的View无法完全填充LinearLayout父容器。

 

  三、 解决代码

    就一行代码,不知道是Android的Bug还是怎么:

复制代码 代码如下:

ly.addView(gridview,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));

结束

  这个问题烦了我两个小时+,不管怎么说还是解决了,开心ing。

时间: 2024-08-01 20:39:02

Android动态添加View的问题解决方法_Android的相关文章

Android动态添加View的问题解决方法

后台代码复制代码 代码如下:    private void ChangeView()    {        ly.removeAllViews();        LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);        View layout = inflater.inflate(R.layout.grid,null);        GridView gridvi

动态添加 iew不可重叠-android动态添加View并位置随机

问题描述 android动态添加View并位置随机 解决方案 1.添加view直接采用addview就可以了2.可以采用RelativeLayout或者framelayout布局方式,这上面添加的组件可以通过设置left和top或者设置leftmargintopmargin也行,实现绝对定位3.组件不重叠需要自己记录下来一个rect集合,在添加的时候进行判断添加的view是否会重叠.以及可以添加的坐标. 解决方案二: http://embed.21ic.com/software/android/

Android 动态添加Fragment的实例代码_Android

1.fragment1布局及代码 布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&quo

android实现添加耳机状态图标的方法_Android

本文实例讲述了android实现添加耳机状态图标的方法.分享给大家供大家参考.具体如下: 原生态的android系统是没有耳机插入或未插入的状态指示的,本文就是讲解如何添加耳机插入的状态指示.效果图如下 如图,当插入耳机后,在status bar上出现了一个耳机的图标. 这个耳机的图标和sim卡信号等图标在status bar的右边,因此这个实现肯定不是通过notification实现的,那么添加这个功能只能在framwork里面寻找了.具体的修改步骤如下: 1.在frameworks/base

Android动态添加view的方法示例

由于项目需求菜单写活,效果如下: 这里的按钮数量是可变的.png 由于不是可滑动控件,我用的百分比布局做的适配 LinearLayout typeLayout = (LinearLayout) headerView.findViewById(R.id.layout_type); final List<FirstTypeEntity.DataBean> firstTypeList = entity.getData(); for (int i = 0;i<firstTypeList.size

Android中fragment嵌套fragment问题解决方法_Android

都说fragment好用,duang~~,又遇到问题了,记录一下,分享给遇到这个问题的同学! 1.fragment嵌套fragment时出现getActivity()为null         activity A嵌套fragment B,B嵌套fragment C,C跳转到activity D,当activity D被finish掉之后,C中容易爆出getActivity为空.如果你的activity被回收了,那你需要在bundle中保存一下fragment信息,我的解决方法:fragment

Android Studio的中文乱码问题解决方法_Android

Android Studio安装后发现所有的中文,不管是界面上的还是输出的log中的中文都变成小框框  可以肯定是字体的问题 解决:菜单File->settings对话框,切换到Appearance标签  选择override default fonts by, 先随便选择一个中文字体(PS:小框框都是中文字 呵呵),保存,重启软件,即可.

android开发中动态添加view的两个实例

举个例子:比如要在一个LinearLayout中添加一个Button,  子view是Button,父view是LinearLayout. 子view的属性就是通过LayoutParams来设置的,注意是LinearLayout.LayoutParams,因为子view的高度,宽度这些都是针对父view的,要告诉父view自己要占用多大空间,所以是LinearLayout(原来总是会用子view的LayoutParams来设置,错误) public class MyActivity extend

Android viewpager中动态添加view并实现伪无限循环的方法_Android

本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里有一个需求,就是viewpager里面加载的页数不是确定的,而是根据数据的多少来确定的.常见的应用就是在一个新闻的详细页面中,显示与此新闻有关的图片. 下面我们来看一下代码: activity_main.xml <RelativeLayout xmlns:android="http://sch