我正在查看Google IO中使用的名为SlidingTabLayout的Google类.在该类中,有一个名为setDistributeEvenly的方法,它允许所有这些选项卡在屏幕上具有均匀分布 - 每个选项卡具有相同的大小:Align-Center SlidingTabLayout
我正在尝试使用官方tabLayout类:https://developer.android.com/reference/android/support/design/widget/TabLayout.html
但似乎没有一种方法可以使所有标签均匀分布.
我错过了什么,课堂上有一个让我这样做的方法吗?
我已经创建了选项卡式活动,请帮助我如何在可滑动的TabLayout中的不同选项卡中显示不同的布局.我们如何在每个选项卡中添加不同的活动,例如,当我们在一个布局中添加图像,然后将屏幕更改布局滑动到另一个布局时.
以下是我的代码;
主要活动
package com.example.saeed.salehkhana;
import java.util.Locale;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentPagerAdapter;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link FragmentPagerAdapter} derivative, which will keep every
* loaded fragment in memory. If this becomes too memory intensive, …Run Code Online (Sandbox Code Playgroud) 在android.support.design.widget.TabLayout,如何使活动标签始终显示在中心,就像在Play报亭应用程序中一样,如下所示.
第一个和最后一个选项卡也应出现在中心.
我尝试在TabLayout上使用填充.它不起作用.这是我写的代码:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:tabIndicatorColor="@color/yellow"
app:tabSelectedTextColor="@android:color/white"
app:tabTextColor="#EEE"
app:tabMode="scrollable"
android:gravity="bottom"
android:clipToPadding="false"
android:paddingLeft="90dp"
android:paddingRight="90dp"
/>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,tabIndicator也将从左移90dp.它应该保持在独立于填充的中心.
android material-design android-tablayout google-play-newsstand
我想在TabLayout中找到Tab的视图,以便我可以将它传递给另一个函数.我不确定如何找到视图.
myTabLayout.getTabAt(0).getCustomView()返回null.
我如何获得视图?
TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tab_layout_main);
tabLayout.addTab(tabLayout.newTab().setText("Page1"));
tabLayout.addTab(tabLayout.newTab().setText("Page2"));
viewPager = (ViewPager) rootView.findViewById(R.id.pager_main);
pagerAdapter = new MyPagerAdapter(getActivity(), getChildFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
private TabLayout tabLayout;
private int[] tabIcons = {
R.mipmap.ic_compass,
R.mipmap.ic_place,
R.mipmap.ic_passport,
R.mipmap.ic_setting
};
...
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
tabLayout.getTabAt(3).setIcon(tabIcons[3]);
Run Code Online (Sandbox Code Playgroud)
图标的大小取决于图像大小.我怎么能调整它?
Android TabLayout tabPaddingTop和tabPaddingBottom未被删除
请参阅上述问题.
即使我将我的设计库更新为"23.2.0",Tab布局也搞砸了.
下图是我的标签布局.
Xml部分: -
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="@android:color/white"
app:tabIndicatorHeight="@dimen/dp2"
app:tabMode="fixed"
app:tabSelectedTextColor="@android:color/white"
app:tabTextAppearance="@style/MyCustomTabTextAppearance" />
Run Code Online (Sandbox Code Playgroud)
样式xml: -
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/color_156084</item>
</style>
<style name="MyCustomTabTextAppearance" parent="TextAppearance.Design.Tab">
<item name="android:textSize">@dimen/sp14</item>
<item name="android:textColor">@android:color/white</item>
<item name="textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我已将padding设置为-1dp,甚至将tabGravity填充,但没有任何工作.
此代码曾用于早期版本,但现在如果我降级它,我在TintManager上得到一个没有类def找到错误.
我的标签TabLayout占据了屏幕的中心,即使tabMaxWidth = "0dp"按照Adam John的回答添加,也没有填满整个宽度
这是我希望通过制表符扩展到填充屏幕,如下所示:
但我得到的是:
我的XML看起来像这样:
<android.support.design.widget.TabLayout
android:id="@+id/tl_contact_type"
style="@style/tabWidgetLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"/>
Run Code Online (Sandbox Code Playgroud)
style.xml for tabWidgetLayout
<style name="tabWidgetLayout" parent="Widget.Design.TabLayout">
<item name="tabIndicatorColor">@color/colorTealAccent</item>
<item name="tabIndicatorHeight">@dimen/default_corner_radius_medium</item>
<item name="tabBackground">?attr/selectableItemBackground</item>
<item name="android:background">@color/colorBrandPrimaryDark</item>
<item name="tabSelectedTextColor">@color/color_tab_selected_text</item>
<item name="tabTextAppearance">@style/tabWidgetLayoutTextAppearance</item>
</style>
Run Code Online (Sandbox Code Playgroud)
任何帮助解决这个问题非常感谢.
我有一个示例项目TabLayout和PagerAdapter.奇怪的事情发生了TabLayout当我打电话pagerAdapter.notifyDataSetChanged();后,tabLayout.setupWithViewPager(viewPager);
TabLayout滚动到未知的x位置,因此当前选项卡不可见.但是,如果我向左滚动到期望选项卡,则此选项卡有指示符.
到底是怎么回事?谁能帮助我?我花了太多时间.
代码下方.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
final SampleFragmentPagerAdapter pagerAdapter = new SampleFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this);
viewPager.setAdapter(pagerAdapter);
// Give the TabLayout the ViewPager
TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pagerAdapter.notifyDataSetChanged();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我测试了nexus仿真器和nexus真实设备(api 21+) …
请帮忙:导入时出错我android.support.design.widget.TabLayout
说"can not resolve symbol 'design'
我的build.gradle:
compileSdkVersion 26
buildToolsVersion "26.0.0"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
{
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:support-v4:26'
testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud) android android-support-library android-gradle-plugin android-design-library android-tablayout
<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并附加图像.