gpt4 book ai didi

android - 将 XML 布局扩展到自定义 ViewGroup

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:16 25 4
gpt4 key购买 nike

我正在尝试将 xml 布局扩展到自定义 ViewGroup 中。展开布局后,ViewGroup 仅显示布局的 Root View ——实际上它应该将完整的布局文件显示到 ViewGroup 中。

我已经查看了在 stackoverflow 和其他网站上发布的与此相关的其他类似问题,但没有任何帮助。

这是我的自定义 ViewGroup 的代码:

public class ViewEvent extends ViewGroup {
private final String LOG_TAG="Month View Event";
public ViewEvent(Context context) {
super(context);
}

public ViewEvent(Context context,AttributeSet attrs) {
super(context,attrs);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {

int childCount= getChildCount();
for(int i=0;i<childCount;i++)
{
Log.i(LOG_TAG, "Child: " + i + ", Layout [l,r,t,b]: " + l + "," + r + "," + t + "," + b);
View v=getChildAt(i);
if(v instanceof LinearLayout)
{
Log.i(LOG_TAG, "Event child count: " + ((ViewGroup)v).getChildCount()); // displaying the child count 1
v.layout(0, 0, r-l, b-t);
}
//v.layout(l, r, t, b);
}
}

Activity 中,我正在使用这个自定义 View 组:

ViewEvent event = new ViewEvent(getApplicationContext());
LayoutInflater inflator;
inflator=(LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflator.inflate(R.layout.try1, event);
setContentView(event);

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffaa77">


<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffff0000"
android:text="asdasadfas" />

</LinearLayout>

在膨胀这个布局后,我只得到背景颜色 #ffff0000 的根 LinearLayoutTextView 未显示。

我哪里做错了或遗漏了什么?

最佳答案

尝试 getParent() 事件(您的 ViewEvent):

inflator.inflate(R.layout.try1, event.getParent(), false);

关于android - 将 XML 布局扩展到自定义 ViewGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com