2013-07-02 58 views
0

請參閱存儲器上的Contacts +應用程序以瞭解我的意思。您有三個ListView,每個都有屏幕寬度。然後您可以使用Horizo​​ntalScrollView滾動每一個。什麼是最好的方式來做到這一點?Android - Horizo​​ntalScrollView中的多個ListView

+0

使用一個viewpager和三個包含列表視圖的片段。 –

+0

請添加您的評論作爲答案,以便我可以選擇它:)謝謝。 –

+0

我已經添加了答案,您應該標記它。 –

回答

2

您可以使用這樣的選項卡適配器,使用帶有三個片段的viewpager作爲選項卡。

主機活動:

public class PageViewActivity extends FragmentActivity { 
     MyPageAdapter pageAdapter; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_page_view); 
     List<Fragment> fragments = getFragments(); 
     pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments); 
     ViewPager pager = 
(ViewPager)findViewById(R.id.viewpager); 
     pager.setAdapter(pageAdapter); 
     } 
    } 

片段適配器

class MyPageAdapter extends FragmentPagerAdapter { 
    private List<Fragment> fragments; 

    public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) { 
    super(fm); 
    this.fragments = fragments; 
    } 
    @Override 
    public Fragment getItem(int position) { 
    return this.fragments.get(position); 
    } 

    @Override 
    public int getCount() { 
    return this.fragments.size(); 
    } 
} 

得到片段(可選取決於你希望如何使用是)

private List<Fragment> getFragments(){ 
    List<Fragment> fList = new ArrayList<Fragment>(); 

    fList.add(MyFragment.newInstance("Fragment 1")); 
    fList.add(MyFragment.newInstance("Fragment 2")); 
    fList.add(MyFragment.newInstance("Fragment 3")); 

    return fList; 

的方法而你的片段類

public class MyFragment extends Fragment { 
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE"; 

public static final MyFragment newInstance(String message) 
{ 
    MyFragment f = new MyFragment(); 
    Bundle bdl = new Bundle(1); 
    bdl.putString(EXTRA_MESSAGE, message); 
    f.setArguments(bdl); 
    return f; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    String message = getArguments().getString(EXTRA_MESSAGE); 
    View v = inflater.inflate(R.layout.myfragment_layout, container, false); 
    TextView messageTextView = (TextView)v.findViewById(R.id.textView); 
    messageTextView.setText(message); 

    return v; 
} 
} 

如果您需要更多幫助,請隨時與我聯繫。

相關問題