我正在使用ViewPager和TabLayout.如果选项卡可以放在显示选项卡上,则它们必须是:
app:tabMode="fixed"
Run Code Online (Sandbox Code Playgroud)
其他
app:tabMode="scrollable"
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我试图通过参考[ http://blog.grafixartist.com/material-design-tabs-with-android-design-support-library/] [blog] 使用谷歌设计库来实现工具栏和TabLayout .
输出在Lollipop设备上按预期工作,但它不会在Kitkat设备上显示ToolBar和TabLayout.但我仍然可以按预期在kitkat设备上滑动3个片段.为什么使用谷歌支持库编写的相同代码在不同设备上的工作方式不同!
我试着提到[ 工具栏在Android 4.X设备上不可见[已解决]问题,但它没有解决问题.我尝试使用API 19在模拟器中运行代码,但同样面临同样的问题.
我已经加入'com.android.support:appcompat-v7:22.2.0','com.android.support:support-v4:22.2.0'并'com.android.support:design:22.2.0'在项目的依赖.
activity_main.xml中
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/tools">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/Base.ThemeOverlay.AppCompat.Dark" />
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
public class MainActivity extends AppCompatActivity {
public ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
TabLayout tabLayout …Run Code Online (Sandbox Code Playgroud) android toolbar android-appcompat android-viewpager android-tablayout
我试图使用小型大写字母制作我的ViewPager标签文本,但它不起作用,
我搜索并检查了与此相关的其他帖子,尝试了他们的解决方案,但仍然无法正常工作
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
<item name="tabTextAppearance">@style/MyCustomTextAppearance</item>
</style>
<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
ViewPager选项卡布局
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
app:textAllCaps="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MyCustomTabLayout" />
Run Code Online (Sandbox Code Playgroud)
请问任何确认的工作解决方案?
谢谢.
android android-layout android-viewpager android-studio android-tablayout
TabLayout和ViewPager - 在滑动抽屉项目之间滑动后,单击选项卡不起作用.
我的应用程序有滑动抽屉和Tablayout.我参考本教程的Sliding Drawer 和For TabLayout.
内滑动抽屉
TabLayout(Tabs(Today,Monthly,Yearly))我在Sliding Drawer和Tablayout之间有问题.第一次viewpager加载正确.但是当我移动到下一个抽屉项目(设置片段)之后,返回到TaskList选项卡片段viewpager无法加载任何片段,当滑动该寻呼机然后加载几个片段.
这里有Java代码
public class TaskListFragment extends Fragment {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
public TaskListFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_my_page, container, false);
viewPager = (ViewPager)rootView.findViewById(R.id.viewpager);
tabLayout = (TabLayout)rootView.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public …Run Code Online (Sandbox Code Playgroud) 我有setUp tabLayout与ViewPager有5 Fragments.
tabLayout与android:layout_gravity设置为bottom.第三个片段editText在聚焦时,我的标签来自键盘.
主要布局:
<?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"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
android:id="@+id/t"
layout="@layout/toolbar"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"/>
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tab="http://schemas.android.com/tools"
android:layout_gravity="bottom"
app:tabGravity="fill"
android:background="@color/colorPrimary"
android:layout_alignParentBottom="true"
android:id="@+id/tabs"
app:layout_collapseMode="parallax"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
xmlns:android="http://schemas.android.com/apk/res/android">
</android.support.design.widget.TabLayout></android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
第三片段布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:hint="Enter something"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android android-edittext android-fragments android-viewpager android-tablayout
我只想使制表符指示器圆角而不是整个制表符。我曾尝试设置自定义视图,但并没有帮助我。任何帮助,将不胜感激。谢谢
我有ViewPager连接TabLayout。如果我viewPager.setCurrentItem(position, true)在选项卡布局上使用了正确的选项卡,则会显示(TabLayout自动滚动到选定的选项卡)。但我想使用viewPager.setCurrentItem(position, false)。在这种情况下,选择了正确的选项卡(突出显示),但问题是TabLayout不会滚动到这个选定的选项卡。它是隐藏的,我必须手动滑动TabLayout才能查看选择了哪个选项卡。这是一个错误吗?我可以手动强制TabLayout滚动到选定的选项卡吗?
更新:
要清楚。我的选项卡已正确选择,并且在ViewPager执行viewPager.setCurrentItem(position, true)或时显示正确的视图viewPager.setCurrentItem(position, false)。但是对于第二个,TabLayout不滚动所以我选择的(突出显示)Tab被隐藏了。
更新 2:
我已经用示例应用打开了这个问题:https : //issuetracker.google.com/issues/72390853
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/htab_maincontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/htab_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorBlack"
android:fitsSystemWindows="false"
android:theme="@style/AppTheme">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/htab_collapse_toolbar"
android:layout_width="match_parent"
android:layout_height="256dp"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:titleEnabled="false">
<ImageView
android:id="@+id/htab_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/logo_inner"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:id="@+id/htab_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
app:contentInsetStart="0dp"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/htab_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorBlack"
app:tabGravity="center"
app:tabIndicatorColor="@color/colorSelectText"
app:tabPaddingEnd="@dimen/space_micro"
app:tabPaddingStart="@dimen/space_micro"
app:tabSelectedTextColor="@color/colorSelectText"
app:tabTextAppearance="@style/TabLayoutTextStyle"
app:tabTextColor="@color/colorWhite">
</android.support.design.widget.TabLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我想减少Tab Layout文本和它的指标之间的空间.我正在使用带有折叠工具栏的标签布局,当它向上滑动时,标签布局将固定在顶部.
我有4个标签及其相应的指示灯.
我正在分享我的xml并附加图像.
我正在尝试实现 Tab Layout 但不幸的是收到此错误,
我已经添加了我的 xml 代码,任何人都可以帮助弄清楚我做错了什么。
以下是我得到的错误日志
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vvdntech.design_material/com.example.vvdntech.design_material.LoggedIn}: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:467)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.vvdntech.design_material.LoggedIn.onCreate(LoggedIn.java:17)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 TabLayout 与 ViewPager 结合来创建三个可滑动的片段。但是,我遇到了一个问题:我希望 TabLayout 位于屏幕底部,但 ViewPager 强制它位于顶部。
TabLayout 曾经位于android.support.design.widget库中。然而,自从 androidx 引入以来,这个库已经发生了变化。新库是com.google.android.material.tabs.TabLayout。
以前的(和过时的)帖子(example1,example2)建议通过简单地创建一个垂直并将和LinearLayout指定为该垂直的两个单独元素来解决上述问题。ViewPagerTabLayoutLinearLayout
上面的解决方案不再可行,因为现在您必须将 指定为(引用TabLayout)内部的元素,如下所示:ViewPager
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
>
</com.google.android.material.tabs.TabLayout>
</androidx.viewpager.widget.ViewPager>
Run Code Online (Sandbox Code Playgroud)
然后,为了“合并”ViewPager与TabLayout,setupWithViewPager(ViewPager vp)必须在TabLayout实例上调用该方法:
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
MainPagerAdapter mpa = new MainPagerAdapter(getSupportFragmentManager(), 3);
viewPager.setAdapter(mpa);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)
现在,如何通过 xml 代码或以编程方式巧妙地使 TabLayout 转到 ViewPager …
android android-fragments android-viewpager android-tablayout