मेरे पास एक एम्बेडेड एक एम्बेडेड PagerTitleStrip तत्व के साथ संगतता है और यह ठीक काम करता है लेकिन PagerTitleStrip पर क्लिक अपेक्षित दृश्य पर स्विच नहीं करते हैं। मैंने दस्तावेज़ों को देखा है लेकिन विजेट में PagerTitleStrip ऑब्जेक्ट परक्लिकलिस्टर्स को अटैच करने के लिए कोई अंतर्निहित विधियां नहीं हैं। यह थोड़ा अजीब लगता है क्योंकि शायद यही है कि ज्यादातर लोग उम्मीद करेंगे।PagerTitleStrip को संभालना संगतता में क्लिक करें Fragment- आधारित ViewPager
तो सवाल यह है कि मैं शीर्षक पट्टी को क्लिक करने योग्य कैसे बनाऊंगा?
मैं यह भी पता लगाने की कोशिश कर रहा हूं कि चयनित शीर्षक पट्टी के नीचे एक मोटी अंडरलाइन दिखाने का कोई तरीका है यदि संभव हो तो टैबहोस्ट जोड़ने के बिना।
यहाँ कोड है:
मुख्य लेआउट view_pager.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#ccc"
android:textColor="#fff" />
</android.support.v4.view.ViewPager>
</LinearLayout>
दो टुकड़ा लेआउट ViewPager में जाने:
fragment_connect.xml (दूसरा समान ऐसा नहीं है शामिल)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/text_view_connect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="connect"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
मुख्य गतिविधि वर्ग StandardViewPagerAct ivity.java:
package com.example.standardviewpager;
import java.util.List;
import java.util.Vector;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.view.Menu;
public class StandardViewPagerActivity extends FragmentActivity {
private MyPagerAdapter pagerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager);
ViewPager myPager = (ViewPager) findViewById(R.id.my_view_pager);
PagerTitleStrip pagerStrip = (PagerTitleStrip) findViewById(R.id.pager_title_strip);
// TODO: add underline for selected title strip
myPager.setAdapter(pagerAdapter);
myPager.setCurrentItem(0);
initialisePaging();
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, ConnectFragment.class.getName()));
fragments.add(Fragment.instantiate(this, ProfilesFragment.class.getName()));
this.pagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.my_view_pager);
pager.setAdapter(this.pagerAdapter);
}
}
एडाप्टर वर्ग MyPagerAdapter.java:
package com.example.standardviewpager;
import java.util.List;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyPagerAdapter(FragmentManager supportFragmentManager, List<Fragment> fragments) {
super(supportFragmentManager);
this.fragments = fragments;
}
@Override
public int getCount() {
return this.fragments.size();
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return String.format("Title %d", position);
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
}
और अंत में, सहित केवल पहले दो समान टुकड़ा कार्यान्वयन, - ConnectFragment.java।
package com.example.standardviewpager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ConnectFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.fragment_connect, container, false);
TextView textView = (TextView) layout.findViewById(R.id.text_view_connect);
textView.setText("onCreateView() Connect");
return (View)layout;
}
}
'पेजरटैबस्ट्रिप' बिल्कुल वही है जो मुझे चाहिए। धन्यवाद! – ccpizza