Android-android如何实现一个摆放到屏幕底部的Tabwidget

发布于 2017-02-23 14:58:56 字数 35 浏览 1179 评论 4

android默认实现是在屏幕顶部,如何实现成放在底部?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

偏爱自由 2017-11-02 14:46:59

找到一个简洁的方法。
1。用一个垂直的LinearLayout包含Framelayout和TabWidget
2.layout的layout_height都设置wrap_content。
3. Framelayout的android:layout_weight的值设成1。
4.TabWidget的属性 android:layout_weight="0" 。
5.将TabWidget的属性android:layout_marginBottom="-4dp"(用负值来消除底边多余的分割线,看起来比较美观)

完整代码

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android: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"
android:padding="5dp">

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_weight="1"/>

<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_marginBottom="-4dp"/>

</LinearLayout>

</TabHost>

夜无邪 2017-08-31 16:44:40

主要原理:设置 TabWidget 控件的 android:layout_alignParentBottom="true" 实现。
main.xml

 <?xml version="1.0" encoding="utf-8"?>
<TabHost android:id="@+id/tabhost" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout 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"
android:layout_alignParentBottom="true" ></TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/tab1"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<TextView android:id="@+id/view1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/textView_1" ></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/tab2"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<TextView android:id="@+id/view2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/textView_2" ></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/tab3"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<TextView android:id="@+id/view3" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/textView_3" ></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/tab4"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<TextView android:id="@+id/view4" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/textView_4" ></TextView>
</LinearLayout>
</FrameLayout>
</RelativeLayout>
</TabHost>

package com.focusmobi.TabDemo1;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;

public class TabDemo1 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);

setContentView(R.layout.main);
setTitle("TabWidget Demo");

TabHost tabs = (TabHost) findViewById(R.id.tabhost);
tabs.setup();

TabHost.TabSpec spec = tabs.newTabSpec("tab1");
spec.setContent(R.id.tab1);
spec.setIndicator("主页");
tabs.addTab(spec);

spec = tabs.newTabSpec("tab2");
spec.setContent(R.id.tab2);
spec.setIndicator("经济");
tabs.addTab(spec);

spec = tabs.newTabSpec("tab3");
spec.setContent(R.id.tab3);
spec.setIndicator("汽车");
tabs.addTab(spec);

spec = tabs.newTabSpec("tab4");
spec.setContent(R.id.tab4);
spec.setIndicator("科技");
tabs.addTab(spec);

tabs.setCurrentTab(0);
}
}

想挽留 2017-08-30 20:55:45

TabWidget tabWidget = tabHost.getTabWidget();
LinearLayout lLayout = (LinearLayout) tabHost.getChildAt(0);
lLayout.removeViewAt(0);
lLayout.addView(tabWidget);

TabHost 默认布局,以及将TAB移到屏幕底部

瑾兮 2017-06-28 09:45:59

我的程序中的代码 tabhost 在底部的

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabhost"

android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:orientation="vertical"
android:background="@color/white"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- FrameLayout的id属性必须为 @android:id/tabcontent-->
<FrameLayout
android:id="@android:id/tabcontent"

android:layout_width="fill_parent"
android:layout_gravity="center"
android:layout_weight="1.0"
android:layout_height="wrap_content">

</FrameLayout>
<!-- TabWidget的id属性必须为 @android:id/tabs-->

<!-- android:background="@color/navy" -->
<TabWidget
android:id="@android:id/tabs"
android:background="@drawable/bottom_bar"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.0"/>
</LinearLayout>
</TabHost>

代码中使用方法

//获取 TableHost

maitabhost = (TabHost)findViewById(R.id.tabhost);
maitabhost.setBackgroundColor(R.color.lightyellow);

// 如果没有继承TabActivity时,通过该种方法加载启动tabHost

maitabhost.setup(this.getLocalActivityManager());

//添加标签+
//maitabhost.addTab(maitabhost.newTabSpec("tabmain").setIndicator(arg0)

maitabhost.addTab(maitabhost.newTabSpec("tabmain").setIndicator("首页",

getResources().getDrawable(R.drawable.ic_home)).setContent(

new Intent(this,Activity_Tab_Main.class)));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文