如何在片段android

时间:2015-05-03 14:50:30

标签: android fragment

这是片段的代码如下: 这个片段将在MainActivity中调用

 public class StylePreviewFragments extends Fragment{
        private CustomImageView ivPhoto;
        Intent intent;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub


            View view=inflater.inflate(R.layout.choosephoto,container,false);
            initialiseViews(view);
            return view;

        }
        private void initialiseViews(View view) {
            ivPhoto = (CustomImageView) view.findViewById(R.id.ivGalleryPhoto);

            ivPhoto.setImageURI(Uri.fromFile(new File(ShowCapturedPictureActivity.path)));

          }
    }

主要活动代码:  它包含imageview,我必须用片段替换.ImageView添加了自定义ID

public class ShowCapturedPictureActivity extends FragmentActivity{

private static final int CONTENT_VIEW_ID = 10101010;

            StylePreviewFragments stylepreviewfragmnets;
            public static  String path;
        @Override
            protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.picturepreviiew);

                iv_showImage=(ImageView) findViewById(R.id.iv_ShowImage);
                intent=getIntent();
                path=intent.getExtras().get("imagepath").toString();
                // adding cutom id to imageview 
                iv_showImage.setId(CONTENT_VIEW_ID);
                callfragment();// calling fragment
            }

        public void callfragment() // replacing imageview with fragments
                {
                     stylepreviewfragmnets = new StylePreviewFragments();
                   FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

                    ft.add(CONTENT_VIEW_ID,stylepreviewfragmnets);
                    ft.commit();
                }

            }

2 个答案:

答案 0 :(得分:1)

抱歉,我正在做什么把片段放在视图中,这是不正确的,我应该把它放在viewgroup里面。所以我使imageview孩子的线性布局然后我用该线性布局替换片段。它就像一个魅力。

ft.add(linearlayout.getId(),stylepreviewfragmnets);
 ft.commit();

答案 1 :(得分:0)

你可以这样做:

  • 将yourImageView ImageView放入FrameLayout yourContainer
  • 在您的callfragment()
  • ,将myImageView设置为可见性View.GONE,然后将stylepreviewfragmnets添加到FrameLayout yourContainer

希望这有帮助!