所以我创建了带有片段的选项卡视图,一切都很顺利,除了整个布局颜色是深灰色(不知道为什么)和选项卡行颜色是粉红色(也不知道为什么)。
看起来像这样在这里输入图像描述
此外,如您所见,iz 在操作栏和选项卡栏之间有奇怪的间距(也不知道为什么)。
这是我的代码:
维兹贝.java
package hr.app.liftme.liftmehr;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
public class Vjezbe extends AppCompatActivity {
Toolbar toolbar;
TabLayout tabLayout;
ViewPager viewPager;
ViewPagerAdapter viewPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vjezbe);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
tabLayout = (TabLayout)findViewById(R.id.tabLayout);
viewPager = (ViewPager)findViewById(R.id.viewPager);
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addFragments(new HomeFragment(), "Prsa");
viewPagerAdapter.addFragments(new TopFreeFragment(), "Leđa");
viewPagerAdapter.addFragments(new TopPaidFragment(), "Ramena");
viewPagerAdapter.addFragments(new TrapeziFragment(), "Trapezi");
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}
activity_vjezbe.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true"
tools:context="hr.app.liftme.liftmehr.Vjezbe">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_vjezbe" />
</android.support.design.widget.CoordinatorLayout>
样式.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
因此,如果有人可以引导我解决我的错误,我将不胜感激!
谢谢!
此外,整个布局颜色是深灰色(不知道为什么),选项卡行颜色是粉红色(也不知道为什么)。
尝试更改原色和强调色,如下所示res/values/colors.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color> <!-- Tab color -->
<color name="colorPrimaryDark">#303F9F</color> <!-- Status bar color -->
<color name="colorAccent">#FF4081</color> <!-- Tab indicator color -->
</resources>
此外,如您所见,iz 在操作栏和选项卡栏之间有奇怪的间距(也不知道为什么)。
我不知道ViewPagerAdapter
是什么,但你应该使用类似FragmentPagerAdapter
或这样的FragmentStatePagerAdapter
:
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
public StorePagerAdapter(FragmentManager manager, String[] titles) {
super(manager);
mTitles = titles;
}
private String[] mTitles;
@Override
public Fragment getItem(int position) {
if (position == 0) {
return new HomeFragment();
} else if (position == 1) {
return new TopFreeFragment();
} else if (position == 2) {
return new TopPaidFragment();
} else if (position == 3) {
return new TrapeziFragment();
}
return null;
}
@Override
public int getCount() {
return mTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles[position];
}
}
这在您的活动onCreate
中:
.
.
String[] titles = new String[] {"Prsa", "Leđa", "Ramena", "Trapezi"};
MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), titles);
.
.