当前位置: 首页 > 知识库问答 >
问题:

调用子片段时未找到id的视图

陶鸿畴
2023-03-14
package info.androidhive.slidingmenu;

import java.lang.reflect.Field;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageButton;

public class HomeFragment extends Fragment {

 public static HomeFragment newInstance() 
 {
        return new HomeFragment();
    }

public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState){


    View rootView = inflater.inflate(R.layout.fragment_home, container, false);

    ImageButton ib = (ImageButton) rootView.findViewById(R.id.buttonEnq);
    ib.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            InfoFragment infoFragment = new InfoFragment();
            /*FragmentManager fm = getFragmentManager();
            fm.beginTransaction().replace(R.id.frame_container, infoFragment).commit();
            */

            FragmentTransaction ft = getChildFragmentManager().beginTransaction();
            ft.setCustomAnimations(R.anim.abc_slide_out_bottom, 0);
            ft.replace(R.id.frame_container,infoFragment);
            ft.commit();
        }
    });

    ViewPager viewPager = (ViewPager)rootView.findViewById(R.id.myfivepanelpager);
    ImageAdapter adapter1 = new ImageAdapter(this.getActivity());
    viewPager.setAdapter(adapter1);

    return rootView;

    }

@Override
public void onDetach(){
    super.onDetach();

    try{

        Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
        childFragmentManager.setAccessible(true);
        childFragmentManager.set(this,null);

    }catch(NoSuchFieldException e){
        throw new RuntimeException(e);
    }catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    }
  } 
}
  • Android片段找不到ID的视图?
  • 找不到id 0x7F090005的视图
  • 找不到片段id的视图

你能告诉我我做错了什么吗?

共有1个答案

蒋硕
2023-03-14
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
 类似资料:
  • 我一整天都被困在这个问题上,我似乎找不到一个适合我的情况的答案,足以让我使用。 当我单击一个列表项时,比如Blue,在Portraint中,我希望它显示一个新的片段,这是一个蓝色的屏幕,而在Sandwork中,它在半个屏幕上显示该片段,在另一个屏幕上显示listview。我正在使用ActionBarSherlock和碎片来完成这一点。 我从里到外构建了它,所以我从一个列表开始,它按照我想要的方式工

  • 我刚开始学Android。我有一个活动类,我想把它重定向到导航栏的ViewPage中的一个片段?我尝试了很多方法,但都不奏效。我希望能帮上忙!!!我的代码:有一个mainactivity.java有一个ViewPager和BottomNavigationView ViewPageApdater类 和Activity类,但我遇到一个问题:java.lang.IllegalArgumentExcept

  • 问题内容: 我正在尝试启动一个列表片段,但它似乎仅在平板电脑上运行。当我在手机上运行我的应用程序时,该应用程序崩溃了。有谁知道如何解决这个问题?代码如下。 错误 MainActivity.java activity_main.xml activity_main.xml(sw600dp) FragmentMainList.java 问题答案: 因为你有这条线 并且您没有任何布局具有与ID相同的ID

  • 假设有两个Fragments,X和Y。我在X上添加Y片段。当Y完成它的工作,然后删除,X再次可见。 问题:当Y片段被删除并且X再次可见时,我必须执行一些任务,但不会调用,因为它取决于活动。那么我怎么知道片段是可见的呢?

  • 如果包含一个与之匹配的值,则一切正常。 从返回 如果片段不存在,AbstractStandardFragmentInsertionTagProcessor#ComputeFragment似乎总是失败。 我对Thymeleaf很陌生,所以我可能错过了一些相当基本的东西。

  • 问题内容: 我有一个活动,其中包含一个片段,在该片段中有一个按钮,当单击它时,会弹出一个对话框。 在此对话框中,有一个Viewpager,其中包含一些要显示的片段。 这是代码和错误,请您花宝贵的时间告诉我我哪里错了。非常感谢您的帮助。 MainActivity.class MyFragment.class PagerDialog.class 这是dialog.xml: 这是错误 问题答案: 我找到