java - 无法在 android studio 中使用 viewpager 查看选项卡布局中的选项卡名称

标签 java android android-studio android-viewpager android-tablayout

我设计了一个页面,其中包含带有选项卡布局的工具栏和 View 页面。此页面使用样式 Theme.AppCompat.Light.NoActionBar 作为应用程序主题。一切工作正常,我可以查看页面幻灯片页面,但无法查看选项卡布局中的选项卡名称。请任何人帮助我,我正在使用 android studio 2.2.1

页面的xml设计代码为:

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimary"
android:elevation="6dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>


<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_gravity="end"
android:layout_width="match_parent"
android:layout_height="match_parent"
>


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:background="?attr/colorPrimary"
android:elevation="6dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
style="@style/CustomTabLayoutStyle"/>

<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"

/>

</LinearLayout>


<RelativeLayout
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="#CC194740"
android:orientation="vertical" >

<LinearLayout
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:gravity="center_vertical"
android:background="#328e80"
android:orientation="horizontal" >

<ImageView
android:id="@+id/image_view"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="10dp" 
/>

<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"        
android:textColor="#fff"
android:textSize="16sp"
android:textStyle="bold" />

</LinearLayout>

 <ListView android:id="@+id/drawer_list"
 android:layout_width="240dp"
 android:layout_height="match_parent"
 android:layout_marginTop="70dp"
 android:layout_gravity="end"
 android:choiceMode="singleChoice"
 android:divider="@android:color/transparent"
 android:dividerHeight="0dp"
 />
</RelativeLayout>

</android.support.v4.widget.DrawerLayout>


</LinearLayout>

这个xml设计的java代码是

<小时/>
package info.sants_thapal;




import android.support.v7.widget.Toolbar;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.design.widget.TabLayout.TabLayoutOnPageChangeListener;
import android.app.AlertDialog;
import android.app.FragmentTransaction;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.support.v4.app.ActionBarDrawerToggle;

import android.support.v4.app.FragmentTabHost;

import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;

import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.Spinner;


import android.widget.TextView;
import android.widget.Toast;


import com.squareup.picasso.Picasso;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import info.sants_thapal.CustomGridViewAdapter.ViewHolder;

import static android.provider.Settings.System.AIRPLANE_MODE_ON;

public class Social extends AppCompatActivity implements OnItemSelectedListener {


   private static final String TAB_5_TAG = null;


   // Tab titles
   private String[] tabs = {"Life", "Friends", "Groups"};

   SharedPreferences sPref;
   Button login;
   String session_email = "", session_type = "", session_st, session_ph, session_loc;
   //TabHost tabHost1;
   ArrayList<HashMap<String, Object>> usersList, usersList1;

   int imageId;
   ImageView imageView;
   TextView text, tv, tv2, tv3;
   DrawerLayout mDrawerLayout;
   String namess, counta;
   // ListView represents Navigation Drawer
   ListView mDrawerList, mDrawerList1;
   private RelativeLayout mDrawerRelativeLayout;
   // ActionBarDrawerToggle indicates the presence of Navigation Drawer in the action bar
   ActionBarDrawerToggle mDrawerToggle;

   Handler mHandler;
   Runnable refresh;

   Context mcontext;
   String o, n, afsa;
   int abd2;
   private Button mSubmit;
   RelativeLayout notifCount, notifCount2, notifCount3;
   private PopupWindow pwindo;
   MenuItem item, item2, item3;

   ViewHolder viewholder;


   List<HashMap<String, String>> aList;

   public String[] namesaram, countrycodes;
   private TypedArray imgs;


   // Title of the action bar
   String mTitle = "";
   static String IP = IpAddress.Ip;
   private String PRE_IMAGE2 = IP + "/images/procover/";
   private static String url_all_properties = IP + "/social/pic2.php";

   private static String url_all_properties3 = IP + "/social/coun.php";

   private static String url_all_properties5 = IP + "/social/coun2.php";

//private static String url_all_properties6 = IP+"/social/coun6.php";

   private static String url_all_properties303 = IP + "/social/logou.php";

   private static String url_all_properties99 = IP + "/social/spanfspinpost.php";
   private static String url_all_properties2 = IP + "/social/spanfspinpost2.php";

   private static String url_all_properties999 = IP + "/social/spanfspinpost3.php";

   private static String url_create_product = IP + "/social/save.php";


   private static final String TAG_SUCCESS = "success";
   //private static final String TAG_SUCCESS1 = "mass";
   private static final String TAG_USER = "users";
   JSONParser jParser = new JSONParser();
   //private String PRE_IMAGE = IP+"/upload/";
   private static final String TAG_PRO = "propertiesgfdfgd";
   private static final String TAG_PRO2 = "properties";

   private static final String LOG_TAG = null;
   protected static final int NUM_THREADS = 0;
   //private static final String TAG_PRO1 = "properties1";
// products JSONArray
   JSONArray users = null;
   //JSONArray users1 = null;
   JSONParser jsonParser = new JSONParser();
   int abu, abd;
   private FragmentTabHost mTabHost;


   View layout;
   TabLayout tabLayout;
    ViewPager viewPager;
   /**
    * ATTENTION: This was auto-generated to implement the App Indexing API.
    * See https://g.co/AppIndexing/AndroidStudio for more information.
    */


/*public class ViewHolder
{

TextView tv,tv2;


}*/


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

      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);

      sPref = this.getSharedPreferences("REAL", Context.MODE_PRIVATE);
//  intent=getIntent();
      session_email = sPref.getString("SESSION_UID", "");
      session_ph = sPref.getString("SESSION_PH", "");
      session_type = sPref.getString("SESSION_TYPE", "");
      session_st = sPref.getString("SESSION_STAT", "");
      session_loc = sPref.getString("SESSION_LOC", "");

      //private String[] tabs = {"Life", "Friends", "Groups"};
      tabLayout = (TabLayout) findViewById(R.id.tab_layout);

                        tabLayout.addTab(tabLayout.newTab().setText("Life"));
                        tabLayout.addTab(tabLayout.newTab().setText("Friends"));
                        tabLayout.addTab(tabLayout.newTab().setText("Groups"));



      tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

viewPager = (ViewPager) findViewById(R.id.pager);
       TabsPagerAdapter mAdapter = new TabsPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());


      viewPager.setAdapter(mAdapter);

      viewPager.addOnPageChangeListener(new TabLayoutOnPageChangeListener(tabLayout));


      tabLayout.post(new Runnable() {
         @Override
         public void run() {


            tabLayout.setupWithViewPager(viewPager);
         }
      });

      //tabLayout.setupWithViewPager(viewPager);
      tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
         @Override
         public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
         }

         @Override
         public void onTabUnselected(TabLayout.Tab tab) {

         }

         @Override
         public void onTabReselected(TabLayout.Tab tab) {

         }
      });




   }
}

调用标签页TabsPagerAdapter.java的其他类文件代码

package info.sants_thapal;


import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;


public class TabsPagerAdapter extends FragmentStatePagerAdapter  {

    int mNumOfTabs;

    public TabsPagerAdapter(FragmentManager fm, int NumOfTabs) {

        super(fm);
        this.mNumOfTabs = NumOfTabs;

    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            TabFragment1 tab1 = new TabFragment1();
            return tab1;
        case 1:
            // Games fragment activity
            TabFragment2 tab2 = new TabFragment2();
            return tab2;
        case 2:
            // Movies fragment activity
            TabFragment3 tab3 = new TabFragment3();
            return tab3;
            default:
                return null;
        }


    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return mNumOfTabs;
    }

    public void clear() {
        // TODO Auto-generated method stub

    }

}

构建.grade文件 minsdk版本是21 目标sdk版本22

compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'

最佳答案

在 TabsPagerAdapter.java 中重写此方法来调用选项卡名称。

private String[] tabTitles = new String[]{"Tab1", "Tab2", "Tab3"};
public CharSequence getPageTitle(int position) {
    return tabTitles[position];
}

也许对你有帮助。

关于java - 无法在 android studio 中使用 viewpager 查看选项卡布局中的选项卡名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40482800/

相关文章:

java - 银行账户Java程序

android - 页面必须填充整个ViewPager2(使用match_parent)

android - 如何直接从android中的网页启动相机

java - 当我更新多对多关系时,所有记录都获得相同的值

java - 在java中创建变量或调用方法

java - 通过 apache HttpClient 3.1 在大型 HTTP MultipartRequestEntity 上发生 OutOfMemory

Android编程在eclipse中不起作用

android - “为平板电脑设计应用”优化技巧

android - 在 Android Studio 上引用库项目而不进行复制 - 错误 :Configuration with name 'default' not found

Android Studio 对于每个宏