Android 自定义View 不显示

有点难懂 2016-01-05 07:13:35
各位大神:

我自己写了一个view 继承RelativeLayout :
代码:

import com.yl.cr.GifView;
import com.yl.def.jar.R;

import android.content.Context;
import android.graphics.Color;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MyLayout extends RelativeLayout{


public MyLayout(Context context){
super(context);

RelativeLayout main = new RelativeLayout(context);

RelativeLayout.LayoutParams lp_main_view = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
main.setBackgroundColor(Color.parseColor("#FF00FF"));
main.setLayoutParams(lp_main_view);


TextView t = new TextView(context);
t.setText("怎么就不显示呢");
RelativeLayout.LayoutParams lp_t_view = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

lp_t_view.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp_t_view.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

main.addView(t, lp_t_view);
}
}

=========分割==================

然后 我在activity里使用new 来加载 就是不显示 请问什么原因啊
activity代码:

import com.yl.cr.GifView;
import com.yl.def.jar.R;
import com.yl.def.jar.view.MyLayout;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

private MyLayout myLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

myLayout = new MyLayout(this);
setContentView(myLayout);
}
}

跪求原因
=========分割=========

如果我直接在activity中实现代码布局 就可以显示:
代码:

import com.yl.cr.GifView;
import com.yl.def.jar.R;
import com.yl.def.jar.view.MyLayout;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

private RelativeLayout MainLayout;

private MyLayout myLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView t = new TextView(this);
t.setText("怎么就不显示呢");
RelativeLayout.LayoutParams lp_t_view = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

lp_t_view.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp_t_view.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

main.addView(t, lp_t_view);

setContentView(main);
}
}

这样就可以显示 什么原因!!!!!
...全文
396 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
有点难懂 2016-01-05
  • 打赏
  • 举报
回复
引用 1 楼 lgxing 的回复:
控件本身就是RelativeLayout,为什么又加了一个main,而且main并没有加入到自身控件中 main既然没用到,可以去掉,将main.addView(t, lp_t_view);改为addView(t, lp_t_view);就可以了
牛B 一语惊醒在梦游的人
lgxing 2016-01-05
  • 打赏
  • 举报
回复
控件本身就是RelativeLayout,为什么又加了一个main,而且main并没有加入到自身控件中 main既然没用到,可以去掉,将main.addView(t, lp_t_view);改为addView(t, lp_t_view);就可以了

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧