IT

코드로 조각 태그를 설정하는 방법은 무엇입니까?

lottoking 2020. 6. 28. 18:01
반응형

코드로 조각 태그를 설정하는 방법은 무엇입니까?


나는 수업 setTag(String tagName)에서 메소드 와 같은 것을 찾지 못했습니다 Fragment. Fragment내가 찾은 태그 를 설정하는 유일한 방법 FragmentTransaction은 매개 변수로 태그 이름을 수행 하고 전달하는 것입니다.

이것이 Fragment코드 태그 를 명시 적으로 설정하는 유일한 방법 입니까?


예. 유일한 방법은 트랜잭션 시간에있다 그래서, 예 사용 add, replace또는 레이아웃의 일부로 사용할 수 있습니다.

과거의 어느 시점에서 비슷한 것을 간단히 살펴 보았을 때 호환성 소스를 조사하여 이것을 결정했습니다.


이런 식으로 태그를 조각화하도록 설정할 수 있습니다.

Fragment fragmentA = new FragmentA();
getFragmentManager().beginTransaction()
    .replace(R.id.MainFrameLayout,fragmentA,"YOUR_TARGET_FRAGMENT_TAG")
    .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit(); 

활동 레이아웃 xml 파일 내에 태그를 제공 할 수 있습니다.

"유일한 문자열로 android : tag 속성을 제공하십시오."

레이아웃 xml에 id를 할당하는 것처럼.

    android:tag="unique_tag"

개발자 안내서 링크


다음과 같이 모든 조각을 얻을 수도 있습니다.

v4 조각 모음

List<Fragment> allFragments = getSupportFragmentManager().getFragments();

app.fragment의 경우

List<Fragment> allFragments = getFragmentManager().getFragments();

이것이 내가 찾은 가장 좋은 방법입니다.

   public class MainActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null) {
          // Let's first dynamically add a fragment into a frame container
          getSupportFragmentManager().beginTransaction(). 
              replace(R.id.flContainer, new DemoFragment(), "SOMETAG").
              commit();
          // Now later we can lookup the fragment by tag
          DemoFragment fragmentDemo = (DemoFragment) 
              getSupportFragmentManager().findFragmentByTag("SOMETAG");
        }
    }
}

나는 그것이 6 년 전인 것을 알고 있지만 누군가 같은 문제에 직면하면 내가 한 것처럼하십시오.

Fragment태그 필드를 사용 하여 사용자 정의 클래스를 작성하십시오 .

public class MyFragment extends Fragment {
 private String _myTag;
 public void setMyTag(String value)
 {
   if("".equals(value))
     return;
   _myTag = value;
 }
 //other code goes here
}

조각을 sectionPagerAdapter세트에 추가하기 전에 다음과 같이 태그를 설정하십시오.

 MyFragment mfrag= new MyFragment();
 mfrag.setMyTag("TAG_GOES_HERE");
 sectionPagerAdapter.AddFragment(mfrag);

태그를 Fragment인수 의 속성으로 추가 할 수 있습니다 . 조각이 파괴 된 후 OS에 의해 재생성되면 자동으로 복원됩니다 .

:-

    final Bundle args = new Bundle();
    args.putString("TAG", "my tag");
    fragment.setArguments(args);

참고 URL : https://stackoverflow.com/questions/6374170/how-to-set-a-fragment-tag-by-code

반응형