我试图在同一个活动中制作一个标签界面.这是我的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应用程序,似乎在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) 我正在为我的应用程序使用紧凑选项卡.
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) 我从母亲的活动中得到了一个片段。现在我想在这个片段中创建标签。但是 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) 我花了很长时间才得到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
我在使用应用程序的工作SlidingTabLayout,并SlidingTabStrip和我想要做的是处理当我选择一个选项卡,该片段被改变.
我已经阅读了一些关于ViewPager.OnPageChangeListener并ViewPager.SimpleOnPageChangeListener尝试过两者的内容,但它们似乎都没有用,也不知道为什么.
我ActionBar.TabListener在My Tab Fragment中实现了.
我更新了API 22,更新它展示后ActionBar.TabListener和ActionBarActivity 被弃用.
像我在我的代码中使用的那样
public class Tabview_Landing extends ActionBarActivity implements ActionBar.TabListener
{
}
Run Code Online (Sandbox Code Playgroud)
链接帮助我解决这个问题.
我正在平板电脑布局大地上工作,我想在文本中心,但它出现在角落我如何设置在中心 
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 应用程序,它有 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) 我正在尝试在选项卡中设置图标,但我不断收到空指针异常。我无法理解为什么会发生这种情况?
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) 在布局中显示此类型的选项卡
我尝试了但没有得到正确的输出
我的代码在这里
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)