问题描述
- 自定义viewGroup中放入fragment view,但是fragment中的内容不显示
-
自定义viewGroup中放入fragment view,但是fragment中的内容显示不到界面上,明明fragment中的oncreateview都走了,而且返回的view不为空?求解!!!<?xml version="1.0" encoding="utf-8"?>
android:id="@+id/test_viewgroup"
android:layout_width="match_parent"
android:layout_height="match_parent"
><TextView android:id="@+id/top" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/black" /> <!--<TextView android:id="@+id/bottom" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="sssssss" android:background="@android:color/white" />--> <FrameLayout android:id="@+id/bottom" android:layout_width="match_parent" android:layout_height="wrap_content"> </FrameLayout>
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_view_group);
//mBottomView = (TextView) findViewById(R.id.bottom);
//mViewGroup = (TestViewGroup) findViewById(R.id.test_viewgroup);
mTopView.setOnClickListener(this);
mBottomFragment = new BottomFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.bottom, mBottomFragment);
transaction.commit();
}public class BottomFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.test_sliding, container, false); return view; }
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Log.i("edward", "onMeasure");
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// 测量子view的大小
//measureChildren(widthMeasureSpec, heightMeasureSpec);
}@Override protected void onLayout(boolean changed, int left, int top, int bottom, int right) { Log.i("edward", "onLayout"); int width = getMeasuredWidth(); int height = getMeasuredHeight(); for(int i = 0; i < 2; i++) { View child = getChildAt(i); if (i == 0) { child.layout(0, 0, width, height / 2 - mOffset); } if (i == 1) { child.layout(0, height / 2 - mOffset, width, height); } } }
fragment 布局中的东西显示不出来
解决方案
问题解决了,自定义viewGroup中onmeasure中必须加上child.measure(widthSpec, heightSpec);
解决方案二:
fragment用法和普通的view不太一样,你肯定没用对,找个博客学习一下
解决方案三:
如果fragment没问题,就是你的自定义viewgroup有问题,你可以将fragment放入到别的viewgroup,比如linearlayout,测试看看
解决方案四:
问题解决了,自定义viewGroup中onmeasure中必须加上child.measure(widthSpec, heightSpec);
解决方案五:
问题解决了,自定义viewGroup中onmeasure中必须加上child.measure(widthSpec, heightSpec);
解决方案六:
问题解决了,自定义viewGroup中onmeasure中必须加上child.measure(widthSpec, heightSpec);
解决方案七:
问题解决了,自定义viewGroup中onmeasure中必须加上child.measure(widthSpec, heightSpec);
解决方案八:
你可以把fragment换成view
解决方案九:
你可以把fragment换成view
解决方案十:
你可以把fragment换成view