2 qq 27665781 qq_27665781 于 2016.02.23 17:48 提问

addview() 后数据不显示

图片说明
用addview后出来的效果图 很明显 日历没有出来
图片说明
然后我把代码oncreate改下 其它地方不动
图片说明
然后日历出来了 没有addview能看到是一个日历加了Addview后就看不到数据 这是怎么回事呢
图片说明

10个回答

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.24 15:07
已采纳

你的代码写的是真乱,问题出在CanlendarCard类中的

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        mViewWidth = w;
        mViewHeight = h;
        mCellSpace = Math.min(mViewHeight / TOTAL_ROW, mViewWidth / TOTAL_COL);
        if (!callBackCellSpace) {
            callBackCellSpace = true;
        }
        mTextPaint.setTextSize(mCellSpace / 3);
    }

这里面获取的Height为0,所以导致你添加的时候看不到,因为根本原因是你的布局有问题。最直接的解决办法。直接指定宽度和高度

     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_marginTop="15dp"
        android:orientation="vertical" >

        <android.support.v4.view.ViewPager
            android:id="@+id/vp_calendar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@color/white" >
        </android.support.v4.view.ViewPager>
    </LinearLayout>
qq_27665781
qq_27665781 谢谢 。
接近 2 年之前 回复
lanlande_vip
lanlande_vip   2016.02.23 17:57

因为你setContentView了一个布局文件,布局文件里有日历的view把

你用addview的话是不是需要先setContentView(kk);呢?

qq_27665781
qq_27665781 kk 是父类的一个LinearLayout setContentView(kk)会报错的 。 还没解决 求 指点啊
接近 2 年之前 回复
Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.23 17:59

在Android开发中,通过setContentView设置Activity的显示视图,只有这样Activity才会显示view,然后你在进行addView。
还有一个问题是你的kk代表什么意思,如果他是一个viewgroup,你需要先设置setContentView,然后findViewById找到kk,然后在添加view即可

qq_27665781
qq_27665781 回复Mr_dsw: 对啊 你有什么解决方法没?
接近 2 年之前 回复
Mr_dsw
Mr_dsw 回复qq_27665781: 明白你的意思,你是往kk里面addview
接近 2 年之前 回复
qq_27665781
qq_27665781 kk是父类的一个LinearLayout
接近 2 年之前 回复
qklnmc
qklnmc   2016.02.23 18:06

你的KK 是什么? 你可以在日历上边加一个LinearLayout什么的,然后把LinearLayout定为KK,KK.addView(你的布局)。

qklnmc
qklnmc 回复qq_27665781: 布局文件贴出来,是不是LinearLayout没有设置orientation
接近 2 年之前 回复
qq_27665781
qq_27665781 头部布局
接近 2 年之前 回复
qq_27665781
qq_27665781 kk
接近 2 年之前 回复
qq_27665781
qq_27665781   Rxr 2016.02.23 18:12

kk就是这个:图片说明

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.23 20:44

这样写:

    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        XInterface.initTitle(this,R.string.advise,0,null);
        View vv = View.inflate(this,R.layout.advise1,null);
        kk.addView(vv);
        setContentCiew(kk);
        init();
    }
Mr_dsw
Mr_dsw 回复qq_27665781: vv怎么会为null,你把代码发给我一份,我给你看看,搞不懂你的布局。要是为null也是kk为null。邮箱:dengshiwei_it@163.com
接近 2 年之前 回复
qq_27665781
qq_27665781 你这样写不行的 kk.addView(vv);的时候 vv报null了
接近 2 年之前 回复
luochoudan
luochoudan   Ds   Rxr 2016.02.23 23:12

你第一张图里面,日期和星期是不是添加进去了?

qq_27665781
qq_27665781 但是我日历的数据没有出来啊 我纠结的就是这个
接近 2 年之前 回复
qq_27665781
qq_27665781   Rxr 2016.02.24 09:20

还没有解决 谁来帮帮我啊

qq313335420
qq313335420   2016.02.24 13:45

1.kk这个view没有高度设置 猜测只是wrap_content
2.日历是绘制上去的 addView之后没有高度的
解决方法只能是:根据计算得到设置vv的高度
为什么setContentView可以因为此时的view是有高度的vv的match_parent是有作用的

qq_27665781
qq_27665781 已经完成了 ,可以结了 。 哎呀 说到一点了
接近 2 年之前 回复
qq_27665781
qq_27665781   Rxr 2016.02.24 15:21

我是在addview的时候加了个parmers 是布局问题 高度...

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!