2017-02-15 11 views
2

ID없이 조각 (framelayout)을 찾을 수 있습니까?어떻게 안드로이드에 id가없는 프래그먼트를 사용할 수 있습니까?

private void setRect(int _x, int _y, int _w, int _h){ 

     final Rect rect = new Rect(_x,_y,_w,_h); 

     final PSPDFConfiguration configuration = new PSPDFConfiguration.Builder(BuildConfig.PSPDFKIT_LICENSE_KEY) 
       .scrollDirection(PageScrollDirection.HORIZONTAL) 
       .build(); 

     final Uri assetFile = Uri.parse("file:///android_asset/psp.pdf"); 

     final FrameLayout frameLayout = new FrameLayout(thisContext); 

     runOnUiThread(new Thread(new Runnable() { 
      @Override 
      public void run() { 

       frameLayout.setId(View.generateViewId()); 

       FrameLayout.LayoutParams params; 

       params = new FrameLayout.LayoutParams(rect.right-rect.left,rect.bottom-rect.top); 
       params.leftMargin = rect.left; 
       params.topMargin = rect.top; 
       params.gravity = 0; 

       frameLayout.setLayoutParams(params); 

       viewer_one.setLayoutParams(params); 
       viewer_one.getSettings().setBuiltInZoomControls(true); 
       viewer_one.setBackgroundColor(Color.BLUE); 

       thisActivity.addContentView(viewer_one,params); 

       PSPDFFragment fragment; 

       FragmentManager manager = getSupportFragmentManager(); 

       fragment = (PSPDFFragment) manager.findFragmentById(frameLayout.getId()); 

       if(fragment == null){ 
        fragment = PSPDFFragment.newInstance(assetFile,configuration); 

        getSupportFragmentManager() 
          .beginTransaction() 
          .replace(frameLayout.getId(), fragment) 
          .commit(); 
       } 

      } 
     })); 


    } 

내 레이아웃 XML에 FrameLayout이를 사용하지 않는 :

여기 내 코드입니다.

업데이트

: 내 코드를 업데이트하고이 오류가

-> 더보기 조각 PSPDFFragment {373f9470

+0

'findFragmentByTag'? – pskink

+0

예? 나는이 태그를 모른다 : ( – Tarasov

+0

) ID가없고 태그가 없으므로 무엇을 가지고 있을까? 익명의 조각은 무엇이 필요합니까? – pskink

답변

2

Set an ID to a view programatically

지정 ID에 대한 ID를 0x1로 (알 수없는)을 찾을 수 없습니다 코드를 통해 (프로그래밍 방식으로)

ids usin g someView.setId(int); int는 양수 여야하지만 그렇지 않으면 임의로 지정할 수 있습니다 (예 : 무서울 경우 계속 읽음). 예를 들어, 항목을 나타내는 여러보기를 만들고 번호 매기기 경우 해당 항목 번호를 사용할 수 있습니다.

이렇게해야합니다. ID를 가지고 조각 관리자에게 사용하십시오. 희망이 도움이됩니다.