Android-扩展ViewGroup而不是添加片段显示为空白



我正在扩展一个名为ScanlistFragment。它布局正确,看起来像我想要的那样。问题是我无法在扩展的FragmentOverride onInterceptTouchEvent。所以我想扩展ViewGroupOverride onInterceptTouchEvent,然后将我的Fragment添加到ViewGroup中。当我将我的Fragment添加到ViewGroup时,Fragment不会显示在ViewGroup内部。我知道ViewGroup在那里,因为我可以LogonInterceptTouchEvent,但屏幕是空白的。

这是片段:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mRootview = (ViewGroup) inflater.inflate(R.layout.scanlist, container, false);
    mRootview.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    mSharedData = new SharedData(mContext);
    costomListViewArr = mSharedData.getvins();
    Resources res = getResources();
    mList = (ListView)mRootview.findViewById(R.id.list);
    mAdapter = new Scanvinadapter(mActivity, costomListViewArr, res);
    mList.setAdapter(mAdapter);
    mAdapter.setimplements(this);
    ViewGroup vg = new Scanlistview(mContext);
    vg.addView(mRootview);
    return vg;
}

这是ViewGroup

public class Scanlistview extends ViewGroup{
    @SuppressWarnings("unused")
    private final String TAG = this.getClass().getSimpleName();
    LayoutInflater mInflater;
    public Scanlistview(Context context) {
        super(context);
    }
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev){
        Log.v(TAG, "onInterceptTouchEvent");
        return false;
    }
    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
    }
}

scanlist.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/flScanlist"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/vinlist_bg">
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:background="@drawable/vinlist_selector"
            android:listSelector="@drawable/vinlist_selector"/>
</FrameLayout>

使用overriden添加自定义FrameLayout而不是FrameLayout方法,而且您实际上并不需要FrameLayout,因为它只有一个子级,所以您可以将自定义ListView放置在布局文件

最新更新