2017-02-20 9 views
0

達成したいTabLayoutの画像。 enter image description hereTabLayoutまたはhorizo​​ntal scrollview Android

これを達成する方法を誰かに教えてもらえますか?

マイコード:私はすでにちょうどレイアウトで左に固執する属性app:tabMode="scrollable"app:tabGravity="center"が、すべてのタブを設定し

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/sliding_tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="scrollable" 
     app:tabGravity="center"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="0px" 
     android:layout_weight="1" 
     android:background="@android:color/white" /> 

</LinearLayout> 

タブの数にかかわらず、上記の画像のような結果を得たいと思います。タブの位置が中央またはタブレイアウトになることを意味します。

PageFragment.java:

package com.example.testing; 

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.TextView; 


// In this case, the fragment displays simple text based on the page 
public class PageFragment extends Fragment { 
    public static final String ARG_PAGE = "ARG_PAGE"; 

    private int mPage; 

    public static PageFragment newInstance(int page) { 
     Bundle args = new Bundle(); 
     args.putInt(ARG_PAGE, page); 
     PageFragment fragment = new PageFragment(); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mPage = getArguments().getInt(ARG_PAGE); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_page, container, false); 
     TextView textView = (TextView) view; 
     textView.setText("Fragment #" + mPage); 
     return view; 
    } 


} 

SampleFragmentPagerAdapter.java:

package com.example.testing; 

import android.content.Context; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 



public class SampleFragmentPagerAdapter extends FragmentPagerAdapter { 
    final int PAGE_COUNT = 3; 
    private String tabTitles[] = new String[] { "Tab1", "Tab2", "Tab3" }; 
    private Context context; 

    public SampleFragmentPagerAdapter(FragmentManager fm, Context context) { 
     super(fm); 
     this.context = context; 
    } 

    @Override 
    public int getCount() { 
     return PAGE_COUNT; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return PageFragment.newInstance(position + 1); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     // Generate title based on item position 
     return tabTitles[position]; 
    } 
} 

TabActivity.java:

package com.example.testing; 

import android.support.design.widget.TabLayout; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class TabAcitivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tab_layout); 

     // Get the ViewPager and set it's PagerAdapter so that it can display items 
     ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
     viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager(),TabAcitivity.this)); 

     // Give the TabLayout the ViewPager 
     TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); 
     tabLayout.setupWithViewPager(viewPager); 
    } 
} 

enter image description here

タブがFRを開始左のom。途中から始めるにはどうすればいいですか?または、水平スクロール可能なListViewを使用する方が良いですか?タブをスクロールするための

+0

あなたのJavaコードを投稿できますか? –

+0

@SachinSaxenaコードを確認してください –

+0

アプリケーションを削除した後にチェックしてください:レイアウトからtabGravity = "center"。私はそれがうまくいくと思う。 –

答えて

1

使用この:任意の他の参考のため

sliding_tabs.setTabMode(TabLayout.MODE_SCROLLABLE); 

次のURLでご覧下さい。 https://guides.codepath.com/android/google-play-style-tabs-using-tablayout

+0

私は、レイアウトの中心にタブを開始したいのですが、そうしたい場合は、TabLayoutに余白やパディングを設定していますか? –

関連する問題