Android : viewPagerIndicator - 다른 페이지에 대해 다른 레이아웃 만들기
-
12-12-2019 - |
문제
viewPagerIndicator 페이지에 각각 하나의 다른 레이아웃을 만들어야합니다. 어떻게해야합니까?ViewPagerIndicator가 이미 작동하지만 http:///aviepagerindicator.com에서 샘플을 사용하고 있으며 간단하게 만들어졌습니다.모든 페이지의 TextView.
샘플 (TestFragment.java)을 참조하십시오.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
TextView text = new TextView(getActivity());
text.setGravity(Gravity.CENTER);
text.setText(mContent);
text.setTextSize(20 * getResources().getDisplayMetrics().density);
text.setPadding(20, 20, 20, 20);
LinearLayout layout = new LinearLayout(getActivity());
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
layout.setGravity(Gravity.CENTER);
layout.addView(text);
return layout;
}
.
현재 페이지 (위치)를 식별하고 관련 자원 레이아웃 (XML)을 참조해야합니다.가능합니까?
활동을 작성할 때 모든 페이지의 모든 페이지의 모든 페이지가 한 번에 한 번만로드 할 수 있으므로 값을 나중에 업데이트 할 수 있는지 확인해야합니다.
해결책
나는 나를 위해 일하는 간단한 해결책을 발견했다.내가 한 일이 여기있다.
testFragment.class
public static TestFragment newInstance(String content) {
TestFragment fragment = new TestFragment();
//
// StringBuilder builder = new StringBuilder();
// for (int i = 0; i < 20; i++) {
// builder.append(content).append(" ");
// }
// builder.deleteCharAt(builder.length() - 1);
fragment.mContent = content;
return fragment;
}
.
여기에서의 루프를 주석 처리합니다.우리가 플래그로 사용할 mcontent 을 얻으십시오.
이제 onCreateView()
에서 다음과 같이 변경합니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// TextView text = new TextView(getActivity());
// text.setGravity(Gravity.CENTER);
// text.setText(mContent);
// text.setTextSize(20 * getResources().getDisplayMetrics().density);
// text.setPadding(20, 20, 20, 20);
//
// LinearLayout layout = new LinearLayout(getActivity());
// layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// layout.setGravity(Gravity.CENTER);
// layout.addView(text);
Log.i("mContent",mContent);
View view=null;
if(mContent.equalsIgnoreCase("title1"))
{
view = inflater.inflate(R.layout.one, container, false);
}
else if(mContent.equalsIgnoreCase("title2"))
{
view = inflater.inflate(R.layout.two, container, false);
}
else if(mContent.equalsIgnoreCase("title3"))
{
view = inflater.inflate(R.layout.three, container, false);
}
return view;
}
.
그것은 모두가 필요합니다.이제 플래그로 사용한 제목 이름을 기반으로 뷰를 팽창시킬 수 있습니다.
제휴하지 않습니다 StackOverflow