标签: android-tabs

在选项卡中显示任何内容时出现NullPointerException

我试图在同一个活动中制作一个标签界面.这是我的main.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/tabhost"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TabWidget android:id="@android:id/tabs"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
    />
    <FrameLayout android:id="@android:id/tabcontent"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <AnalogClock android:id="@+id/tab1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
      />
      <Button android:id="@+id/tab2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="A semi-random button"
      />
    </FrameLayout>
  </LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)

dummy.xml:

<?xml version="1.0" encoding="utf-8"?>

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:orientation="vertical" >

      <RatingBar
          android:id="@+id/ratingBar1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

  </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

和我的活动:

public class LActivity extends Activity {


 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);


     TabHost tabs=(TabHost)findViewById(R.id.tabhost); …
Run Code Online (Sandbox Code Playgroud)

android android-tabs

0
推荐指数
1
解决办法
272
查看次数

指定的孩子已经是父母

这个问题已在这里被多次提出,但我找不到任何帮助.我正在编写一个Android应用程序,似乎在ActionBar上创建选项卡时遇到问题.我一直在寻找问题几个小时似乎无法找到解决方案,但我认为我确实找到了源.我甚至已经清空了实现只是为了获得一些结果并在它们的基础上构建,但是我没有发现任何东西.

这是创建选项卡片段并插入操作栏

    // put ActionBar to nav. mode
    ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // init "YES" tab
    Fragment yesTabFragment = Fragment.instantiate(this, YesTabFragment.class.getName());
    FlowTabListener yesTabListener = new FlowTabListener(yesTabFragment);
    ActionBar.Tab yesTab = actionBar.newTab().setText("YES").setTabListener(yesTabListener);
    actionBar.addTab(yesTab);
Run Code Online (Sandbox Code Playgroud)

这是该类的onCreateView方法

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    _fragmentView =  inflater.inflate(R.layout.yes_fragment, container);    
}
Run Code Online (Sandbox Code Playgroud)

这是片段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="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical" >

    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,实现是空的,我没有在这段时间之前(而不是之后)实例化这个片段但是我得到这个错误:

E/AndroidRuntime(2995): FATAL EXCEPTION: main
E/AndroidRuntime(2995): java.lang.RuntimeException: Unable to start activity ComponentInfo{activities.MainActivity}:    
java.lang.IllegalStateException: The specified child already has a parent. You …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-actionbar android-tabs

0
推荐指数
1
解决办法
2988
查看次数

Tab控件中的ICON和TEXT之间的空格 - Android

我正在为我的应用程序使用紧凑选项卡.

    TabHelper tabHelper = getTabHelper();

    CompatTab menuTab = tabHelper.newTab("menu");
    menuTab.setText(R.string.tab_section1);

    menuTab.setIcon(R.drawable.home_icon);
    menuTab.setTabListener(new InstantiatingTabListener(
            this, MenuFragment.class));
    tabHelper.addTab(menuTab);
Run Code Online (Sandbox Code Playgroud)

我有资源文件代码如下

    <string name="tab_section1">Home</string>
Run Code Online (Sandbox Code Playgroud)

"菜单"选项卡正确呈现,但ICON和TEXT之间没有空格.我怎样才能实现它?

图标和文字

图标和文字"地图"非常接近,没有空间

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" 
 android:drawable="@drawable/home_selected" />
<item android:drawable="@drawable/home" />
</selector>
Run Code Online (Sandbox Code Playgroud)

我的setText Methos

@Override
public CompatTab setText(int resId) {
    mText = mActivity.getResources().getText(resId);
    return this;
}
Run Code Online (Sandbox Code Playgroud)

android android-tabs

0
推荐指数
1
解决办法
1745
查看次数

在片段内创建标签

我从母亲的活动中得到了一个片段。现在我想在这个片段中创建标签。但是 tabHost.setup() 方法显示错误。我不明白,所以需要有关错误的线索。

// FragmentOne.java

package com.example.sharelocationui;

import android.app.Fragment;   
import android.os.Bundle;  
import android.support.v4.app.FragmentTabHost;  
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.ViewGroup;  
import android.webkit.WebView.FindListener;  
import android.widget.ImageView;  
import android.widget.TextView;  
import android.widget.TabHost;  

public class FragmentOne extends Fragment {


private FragmentTabHost tabHost;

public FragmentOne() {

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    super.onCreateView(inflater, container, savedInstanceState); 

    View v = inflater.inflate(R.layout.fragment_layout_one, container,
            false);

    tabHost = (FragmentTabHost) v.findViewById(R.id.testtabhost1);

    tabHost = new FragmentTabHost(getActivity());
    tabHost.setup(getActivity(),getChildFragmentManager(),R.id.testtabhost1); 

    tabHost.addTab(tabHost.newTabSpec("tab_test1").setIndicator("TAB1")); 
    tabHost.addTab(tabHost.newTabSpec("tab_test2").setIndicator("TAB2")); 
    tabHost.addTab(tabHost.newTabSpec("tab_test3").setIndicator("TAB3")); 
    tabHost.setCurrentTab(0); 

    return v; 
}

@Override
public void onDestroyView() { …
Run Code Online (Sandbox Code Playgroud)

android fragment android-tabs fragment-tab-host

0
推荐指数
1
解决办法
8951
查看次数

在ActionBar选项卡上更改图标单击或滑动 - Android

我花了很长时间才得到ActionBar分割中的标签图标ActionBar,以及将标签指示器颜色变为白色.所以现在我需要做的就是在取消选择时用不同的颜色交换图标.所选图标(和指示符)应保持白色.但是怎么样?我用它Android Action Bar Style Generator来制作我的标签,所以我有点紧张的触摸我styles.xml(那里已经有很多东西).我做了一个旧的应用程序,你可以使用一个可绘制的状态选择器xml,但我正在使用TabHost,现在非常贬值,所以我不能再使用它了.但是,如果你知道一个简单的方法来使用drawables文件或我的styles.xml,或者一个点击监听器?我不知道,但我很乐意学习.基本上未选择的图标应该是浅蓝色.

我也使用滑动标签ViewPager,所以当我滑动时,未选中和选择的图标应该是正确的颜色.

更新:原来我不得不将代码添加到我的onTabSelected()onTabUnselected(),然后,像变魔术一样:

 @Override
    public void onTabSelected(ActionBar.Tab tab,
                           android.support.v4.app.FragmentTransaction fragmentTransaction) {
        // When the given tab is selected, switch to the corresponding page in the ViewPager.
        pager.setCurrentItem(tab.getPosition());

        if (tab.getPosition() ==  PHOTO_TAB)
            photo.setIcon(R.drawable.ab_camera);
        else if (tab.getPosition() == VIDEO_TAB)
            video.setIcon(R.drawable.ab_video);
        else if (tab.getPosition() == AUDIO_TAB)
            audio.setIcon(R.drawable.ab_microphone);
        else if (tab.getPosition() == TEXT_TAB)
                text.setIcon(R.drawable.ab_write);

    }

    @Override
    public void onTabUnselected(ActionBar.Tab …
Run Code Online (Sandbox Code Playgroud)

android styles android-layout android-actionbar android-tabs

0
推荐指数
1
解决办法
3689
查看次数

如何使用SlidingTabLayout和SlidingTabStrip处理选定的,重新选择的选项卡?

我在使用应用程序的工作SlidingTabLayout,并SlidingTabStrip和我想要做的是处理当我选择一个选项卡,该片段被改变.

我已经阅读了一些关于ViewPager.OnPageChangeListenerViewPager.SimpleOnPageChangeListener尝试过两者的内容,但它们似乎都没有用,也不知道为什么.

android android-tabs

0
推荐指数
1
解决办法
1412
查看次数

Android Tab Fragment(Eclipse ApI 22)中不推荐使用ActionBarActivity和ActionBar.TabListener

ActionBar.TabListener在My Tab Fragment中实现了.

我更新了API 22,更新它展示后ActionBar.TabListenerActionBarActivity弃用.

像我在我的代码中使用的那样

public class Tabview_Landing extends ActionBarActivity  implements ActionBar.TabListener 
{
}
Run Code Online (Sandbox Code Playgroud)

链接帮助我解决这个问题.

android android-fragments android-tabs

0
推荐指数
1
解决办法
844
查看次数

如何在平板电脑布局中设置标签文本中心?

我正在平板电脑布局大地上工作,我想在文本中心,但它出现在角落我如何设置在中心 在此输入图像描述

xml在这里

    <android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/tab_background_color"
    android:elevation="4dp"
    android:layout_centerHorizontal="true"
    app:tabGravity="center"
    app:tabIndicatorColor="@color/tabIndicatorColor"
    app:tabIndicatorHeight="5dp"
    app:tabMode="fixed"
    app:tabSelectedTextColor="@color/tabSelectedTextColor"
    app:tabTextColor="@color/tabTextColor">       </android.support.design.widget.TabLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout android-tabs

0
推荐指数
1
解决办法
1300
查看次数

单击 tabLayout 上的某些选项卡时应用程序崩溃

我正在开发一个 Android 应用程序,它有 4 个标签和 4 个片段。我已经在我的 Android 设备上运行了该应用程序。但是我遇到的问题是,当我单击前 2 个选项卡时,它工作正常,但是当我打开第 3 个和第 4 个选项卡时,应用程序立即崩溃!

一开始我以为是第3和第4个片段有bug,后来发现这不是第3个或第4个片段的bug。我用第3和第4个片段替换第1和第2个片段,用第3和第4个片段替换第1和第2个片段。同样的事情仍然发生了!

这是我的 main_activity.java。

public class Main_activity extends AppCompatActivity {

@Bind(R.id.main_activity)
View mView;
private int[] tabIcons = {
        R.drawable.friend_chat,
        R.drawable.call,
        R.drawable.tab_contact,
        R.drawable.profile
};
private TabLayout tabLayout;
private FragmentManager mFragmentManager;
private FragmentTransaction mFragmentTransaction;

private NonSwipeableViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

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

    mFragmentManager = getSupportFragmentManager();
    mFragmentTransaction = mFragmentManager.beginTransaction();
    mFragmentTransaction.replace(R.id.viewpager, new ConversationsFragment()).commit();


    viewPager = (NonSwipeableViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-tabs android-tablayout

0
推荐指数
1
解决办法
751
查看次数

设置选项卡图标时出现空指针异常

我正在尝试在选项卡中设置图标,但我不断收到空指针异常。我无法理解为什么会发生这种情况?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(TAG, "onCreate: starting");
    setupNavigationView();
    setupViewPager();

}

//Responsible for adding the 3 tabs:camera,main,message
private void setupViewPager(){
    SectionPagerAdapter sectionPagerAdapter = new SectionPagerAdapter(getSupportFragmentManager());
    sectionPagerAdapter.addFragment(new CameraFragment());
    sectionPagerAdapter.addFragment(new MainFragment());
    sectionPagerAdapter.addFragment(new MessagesFragment());
    ViewPager viewPager = findViewById(R.id.container);
    viewPager.setAdapter(sectionPagerAdapter);

    TabLayout layout = findViewById(R.id.tabs);
    layout.setupWithViewPager(viewPager);

    layout.getTabAt(0).setIcon(R.drawable.ic_camera);
    layout.getTabAt(1).setIcon(R.drawable.ic_instagram);
    layout.getTabAt(2).setIcon(R.drawable.ic_action_name);


}
Run Code Online (Sandbox Code Playgroud)

错误:

  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
                                                                                Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.design.widget.TabLayout$Tab android.support.design.widget.TabLayout$Tab.setIcon(int)' on a null object reference
                                                                                   at android.vishal.instagramclone.MainActivity.MainActivity.setupViewPager(MainActivity.java:47)
                                                                                   at android.vishal.instagramclone.MainActivity.MainActivity.onCreate(MainActivity.java:31)
Run Code Online (Sandbox Code Playgroud)

android android-tabs

0
推荐指数
1
解决办法
2363
查看次数

如何在Android中显示这种类型的TabLayout选项卡?

在布局中显示此类型的选项卡

在此处输入图片说明

我尝试了但没有得到正确的输出

我的代码在这里

private int[] imageList= {R.drawable.icon_category,R.drawable.icon_newest};

 tabLayout=(TabLayout)findViewById(R.id.tabs);
    tabLayout.addTab(tabLayout.newTab().setText(""));
    tabLayout.addTab(tabLayout.newTab().setText(""));


    for (int i = 0; i < imageList.length; i++) {
        tabLayout.getTabAt(i).setIcon(imageList[i]);
    }
Run Code Online (Sandbox Code Playgroud)

android android-tabs android-tablayout

-1
推荐指数
1
解决办法
771
查看次数