首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将TabLayout放在屏幕中央

将TabLayout放在屏幕中央
EN

Stack Overflow用户
提问于 2016-07-11 09:45:52
回答 0查看 1.7K关注 0票数 1

我想将我的选项卡布局放在屏幕的中间,类似于此图像的显示方式:

这正是我想要的方式,但我似乎遇到了麻烦。下面是我的尝试:

profile.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:fresco="http://schemas.android.com/tools"
    android:id="@+id/profile_layout"
    android:layout_height="match_parent">

    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_marginTop="32dp"
        android:id="@+id/profile_picture"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_marginLeft="16dp"
        fresco:roundingBorderColor="@color/white"
        fresco:roundingBorderWidth="10dp"
        fresco:placeholderImageScaleType="centerCrop"
        fresco:placeholderImage="@mipmap/blank_prof_pic"
        fresco:roundAsCircle="true"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="32dp"
        android:layout_toRightOf="@id/profile_picture"
        android:textStyle="bold"
        android:id="@+id/profile_name"/>

    <Button
        android:stateListAnimator="@null"
        android:layout_marginLeft="64dp"
        android:layout_below="@id/profile_picture"
        android:text="@string/followers"
        android:background="?android:attr/selectableItemBackground"
        android:id="@+id/followers_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:stateListAnimator="@null"
        android:layout_marginLeft="72dp"
        android:layout_below="@id/profile_picture"
        android:text="@string/following"
        android:background="?android:attr/selectableItemBackground"
        android:layout_toRightOf="@+id/followers_button"
        android:id="@+id/following_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


    <com.cengalabs.flatui.views.FlatButton
        android:id="@+id/follow_button"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        android:fontFamily="sans-serif-medium"
        android:textSize="12sp"
        android:layout_width="wrap_content"
        android:layout_height="36dp"
        android:paddingLeft="24dp"
        android:paddingRight="24dp"
        android:visibility="gone"
        android:textColor="@color/white"
        android:layout_toRightOf="@id/profile_picture"
        android:layout_below="@id/profile_name"
        android:layout_marginBottom="16dp"/>

    <android.support.design.widget.TabLayout
        android:id="@+id/comments_post_tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_below="@+id/app_bar"
        android:background="?attr/colorPrimary"
        android:elevation="6dp"
        app:tabIndicatorColor="#00BCD4"
        android:minHeight="60dp"
        app:tabGravity="fill"
        app:tabMode="fixed"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/comments_posts_pager"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/tab_layout"/>

</RelativeLayout>

Profile.java:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ProfileTab extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    fragmentView = inflater.inflate(R.layout.profile, container, false);
    setupPostsAndCommentsTabLayout(fragmentView);
    ...
    }
    private void setupPostsAndCommentsTabLayout(View fragmentView) {
        tabLayout = (TabLayout) fragmentView.findViewById(R.id.comments_post_tab_layout);
        tabLayout.addTab(tabLayout.newTab().setText("Posts"));
        tabLayout.addTab(tabLayout.newTab().setText("Comments"));
        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

        final ViewPager viewPager = (ViewPager) fragmentView.findViewById(R.id.comments_posts_pager);
        viewPager.setOffscreenPageLimit(2);
        final PagerAdapter adapter = new PagerAdapter
            (getFragmentManager(), tabLayout.getTabCount());
        viewPager.setAdapter(adapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
    }
}

然而,我尝试的问题是,尽管我试图在布局中设置TabLayout,但android:gravity=center被放在布局的顶部,而不是中间。此外,似乎出现了4个选项卡,而不仅仅是2个,我也对此感到困惑,因为我不知道在哪里或如何创建2个以上的选项卡。最后,由于某些原因,我的应用程序在一段时间后突然崩溃。你知道我可能会出错的地方吗?谢谢!下面是我导航到Profile片段时的屏幕:

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38303821

复制
相关文章
Android笔记:TabLayout占不满屏幕所有宽度
刚好在用到原生TabLayout的时候碰到了这个小问题,网上很多文章都很多余,其实很简单,分享大家看一下
程思扬
2022/01/11
1K0
将网站程序放在tmpfs下
将网站程序放在tmpfs下 然后用nginx直接做对外服务呢 varnish或者squid都是利用内存和它的连接数来做到加速服务. 但是如果是squid->nginx->fastcgi->mysql 这样当中很多连接是开销在内部的连接之中 而且如果客户端请求php.squid还需要将请求再转发至nginx,然后nginx再转发至fastcgi 对于动态内容的多加了一个步骤. 考虑到nginx有了不低于squid以及varnish的连接能力 那么可以将网站程序直接放在tmpfs中 这样如果是静态的.就会直接从内存读取后返回给用户(和其他缓冲服务器的效果一样) 如果是PHP就丢给后面的fastcgi处理 这样更快.
Java架构师必看
2021/03/22
1.1K0
云数据隐私:将密钥放在哪里?
在任何工作负载迁移项目计划中,最容易被忽视的项目通常是跨多个云服务的密钥管理和合规性。增强自带密钥(BYOK)服务使企业可以将数据位置与加密密钥分开。加密最佳实践有助于提高数据隐私性。
静一
2021/06/01
2.8K0
前端性能优化—将CSS文件放在顶部
CSS文件放置在head中和放在body底部,对CSS本身的下载时间不会有影响,但对页面的呈现有非常大的影响,与用户体验密切相关。
红目香薰
2022/11/29
8920
TabLayout基本使用
Tablayout继承自HorizontalScrollView,可以用作顶部标签效果、底部导航栏效果。一般多与ViewPager一起使用。
用户3030674
2019/04/01
1.3K0
java将list中某个元素放在首位
java将list中某个元素放在首位 1 List<Example> example = exampleRepository.list(); 2 3 //将list里的某个字符串默认排列在list第一个位置 4 if(null != example&& example.size() > 0){ 5 for(int index = 0 , length = example.size() ; index < length ; index++){ 6 if("testData
朱季谦
2020/03/24
3.9K0
TabLayout 的几种用法
不过它与RadioGroup不同在于它有下划线可以滑动,更动感...,如果产品经理要求这样实现,就可以派上用场了。
Jingbin
2019/03/19
1.3K0
将Hutool的db.setting放在Nacos配置中心
hutool使用了DB.query作一个查询功能,但需要在resources下建立一个db.settting文件 但我使用了nacos,想需要把这个配置文件也同时放成Nacos上 示例代码如下:
星痕
2021/11/24
8990
将手机屏幕投屏到Kali
首先开启手机的开发者模式--USB试调 通过USB连接电脑后,终端执行命令scrcpy即可
逍遥子大表哥
2021/12/19
1.3K0
将手机屏幕投屏到Kali
JavaScript之将JS代码放在什么位置最合适
1.放到<head></head>标签里面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript">
郑小超.
2018/01/24
8700
将项目上传到 Maven 中央仓库(2023最新,巨详细)
官方文档:https://central.sonatype.org/publish/publish-maven/#a-complete-example-pom
co松柏
2023/05/12
9360
将项目上传到 Maven 中央仓库(2023最新,巨详细)
将jar包发布到maven的中央仓库细节整理
在学习springboot框架的时候,会引入各种各样的starter依赖,照着教程尝试写了个demo-spring-boot-stater,可以理解为一个组件,随引随用
陈灬大灬海
2019/10/16
1.9K0
FastAPI 学习之路(五十五)将token存放在redis
我们之前分享FastAPI 学习之路(五十四)操作Redis,这次我们把请求验证的token存放在redis中做校验。
雷子
2021/10/12
1.5K0
TabLayout 实现底部Tab
前言 底部Tab已经是一个应用的标配了,因为手机屏幕大小的限制,使得我们必须去最大化的利用可见的空间。当然底部Tab一般为3个左右,最多不会超过5个。 效果图 下面是我使用TabLayout来实现的底
code_horse
2018/07/02
1.4K0
【Android开发基础系列】Layout布局专题
        在 Android 中视图组是集合若干个控件在一起的元素,ViewGroup 有两种用法,一种是像普通的控件一样使用(如网页视图、旋转按钮、文本切换器、图像切换器、单选按钮组等),另一种是作为布局容器使用(各种布局)。
江中散人_Jun
2023/10/16
3880
【Android开发基础系列】Layout布局专题
spring security将sessionId放在header里,解决共享会话的问题
现在分布式系统,都是采用redis做共享会话。 现在系统使用的是spring security,用户登陆后,如何通过sessionId保证已经登陆呢 解决办法如下:
星痕
2018/09/12
4.6K1
Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
Maven 中央仓库并不支持直接上传 jar 包,因此需要将 jar 包发布到一些指定的第三方 Maven 仓库,比如:Sonatype OSSRH 仓库,然后该仓库再将 jar 包同步到 Maven ,本文详细记录整个发布、同步过程。
NebulaGraph
2019/12/12
1.1K0
Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
TabLayout的高级使用
真实的业务场景中,很多的效果,原生的TabLayout,并不支持。例如下滑线短于文字的效果,底部导航栏效果,标签文字选中是需要加粗效果等等。
用户3030674
2019/04/01
1.3K0
TabLayout的高级使用
android之TabLayout介绍
TabLayout是Android support中的一个控件android.support.design.widget.TabLayout,Google在升级了AndroidX之后,将TabLayout迁移到material包下面去了com.google.android.material.tabs.TabLayout,原来的support下面的TabLayout从API 29开始就不再维护了。
李小白是一只喵
2020/12/08
1.1K0
点击加载更多

相似问题

将盒子放在屏幕中央

311

将UIImage放在屏幕中央

30

将UIView放在屏幕中央

22

将按钮放在屏幕中央

33

将弹出的div放在屏幕中央

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文