اندرويد:فيوباجيرينديكاتور-إنشاء تخطيطات مختلفة لصفحات مختلفة
-
12-12-2019 - |
سؤال
أنا بحاجة إلى إنشاء أربعة تخطيطات مختلفة ، كل واحد إلى صفحة فيوباجيرينديكاتور.كيف يمكنني أن أفعل هذا?و فيوباجيرينديكاتور يعمل بالفعل ، ولكن أنا باستخدام عينة من http://viewpagerindicator.com وهناك يتم إنشاء تكستفيو بسيط لجميع الصفحات.
انظر العينة (تستفراغمنت.جافا):
@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;
}
أحتاج إلى تحديد الصفحة الحالية (الموقف) والرجوع إلى تخطيط الموارد ذات الصلة (شمل).هل من الممكن?
أحتاج أيضا إلى التأكد من تحميل جميع مشاهدات جميع الصفحات مرة واحدة فقط عند إنشاء النشاط ، مما يسمح بتحديث القيم لاحقا.
أنا أقدر أي مساعدة!!شكرا
المحلول
لقد وجدت حلا بسيطا يعمل بالنسبة لي.هنا هو ما فعلته.
تستفراغمنت.فئة
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;
}
التعليق على حلقة هنا.مجرد الحصول على المحتوى التي سوف نستخدمها كعلم.
الآن في الخاص بك 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;
}
هذا هو كل ما يتطلبه الأمر.الآن سوف تكون قادرة على تضخيم وجهات نظركم على أساس اسم العنوان الذي استخدمناه كما العلم.