Android的FragmentTabHost使用(顶部或底部菜单栏)

Android 仿微信底部菜单栏 + 显示未读消息数量 转载请注明出处: http://blog.youkuaiyun.com/like_program/article/details/53576927 微信想必大家都很熟悉了,它的底部菜单栏和显示未读消息数量功能,被很多 app 模仿,这篇博客就来带领大家,一步一步实现底部菜单栏,并且在底部菜单栏显示未读消息数量。我们先来看下最终效果图。最终效果图1.底部菜单栏2.显示未读消息数量1.实现底部菜单栏我们先来实现底部 阅读详情

首先给大家拜个年,祝大伙新年快乐!万事如意!
第一种:通过FragmentTabHost+Fragment来实现其点击顶部实现切换页面的效果!**
第一步:编写布局文件

<android.support.v4.app.FragmentTabHost
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@android:id/tabhost"
    >
    <!--
    系统要求,具体原因暂时还未追究,不然就会报错
    这个FrameLayout并不是显示内容的fragment
    且其id必须为tabcontent
    -->
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="0"/>
</android.support.v4.app.FragmentTabHost>

<!--
    用来存放标签所对应的内容,用来显示我们的fragment
    若其放置在FragmentTabHost下边,则标签就位于上边,
    反之,标签则位于下边
    -->
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:id="@+id/fragment"
    >
</FrameLayout>

第二步:Activity要继承于FragmentActivity

/**
 * 由于AppCompatActivity继承FragmentActivity
 * 所以无需再去继承FragmentActivity
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    .....

第三步:添加Tab到TabHost中,且让Tab与 Tab所要显示的内容(fragment)绑定在一起

mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
/**
 * 在setup()里边,其才去获取到TabWidget,所以在此之前,不能直接调用getTabWidget()方法;
 */
mTabHost.setup(this, getSupportFragmentManager(), R.id.fragment);

/**
 *addTab:添加标签到TabHost中
 * setIndicator:表示设置标签的logo
 */
 mTabHost.addTab(mTabHost.newTabSpec("blue").setIndicator("blue"),
        BlueFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("orange").setIndicator("orange"),
        OrangeFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("green").setIndicator("green"),
        GreenFragment.class, null);

总结:1>
Tab存在于TabWidget内,而TabWidget是存在于TabHost内。与此同时,
在TabHost内无需在写一个TabWidget,系统已经内置了一个TabWidget

2>关于fragment内容的布局,其位置可以放置在FragmentTabHost外面的上边,里边,或者外边的下边都可以;
当放置在上边时,那么标签是位于底部的;
当放置在里边或者外面的下边时,则此时,标签是位于顶部的;

第二种:通过FragmentTabHost+Fragment来实现其点击底部实现切换页面的效果!**
第一步:activity_main.xml(主布局文件)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:orientation="vertical" >
 6 
 7     <!-- 存放主要页面内容 -->
 8 
 9     <FrameLayout
10         android:id="@+id/maincontent"
11         android:layout_width="fill_parent"
12         android:layout_height="0dp"
13         android:layout_weight="1" >
14     </FrameLayout>
15     
16     <!-- 底层菜单 -->
17 
18     <android.support.v4.app.FragmentTabHost
19         android:id="@android:id/tabhost"
20         android:layout_width="fill_parent"
21         android:layout_height="wrap_content"
22         android:background="@drawable/maintab_toolbar_bg" >
23 
24         <FrameLayout
25             android:id="@android:id/tabcontent"
26             android:layout_width="0dp"
27             android:layout_height="0dp"
28             android:layout_weight="0" >
29         </FrameLayout>
30     </android.support.v4.app.FragmentTabHost>
31 
32 </LinearLayout>

第二步:fragment.xml布局((由于只有文字不同,这里只给出一个))

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5  >
 6 
 7 
 8     <TextView 
 9         android:id="@+id/text"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:layout_centerInParent="true"
13         android:text="我是第一个Fragment"
14         android:textSize="20dp"
15         />
18 </RelativeLayout>

第三步:tabcontent.xml(具体底部菜单详细布局)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:gravity="center_horizontal"
 6     android:orientation="vertical" >
 7 
 8     <ImageView 
 9         android:id="@+id/image"
10         android:layout_height="wrap_content"
11         android:layout_width="wrap_content"
12         />
13     <TextView 
14         android:id="@+id/text"
15         android:padding="2dp"
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content"
18         android:textColor="@android:color/white"
19         />
22 </LinearLayout>

第四步:bt_selector.xml(底部菜单点击背景)

<?xml version="1.0" encoding="utf-8"?>
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3 
4     <item android:drawable="@drawable/home_btn_bg" android:state_pressed="true"></item>
5     <item android:drawable="@drawable/home_btn_bg" android:state_selected="true"></item>
7 </selector>

第五步:FragmentPage1-FragmentPage5.java

public class FragmentPage1 extends Fragment{
11         @Override
12         public View onCreateView(LayoutInflater inflater,
13                 @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
14             return inflater.inflate(R.layout.fragment1, null);
15         }
16 
17 }

第六步:MainActivity.java(主代码)

public class MainActivity extends FragmentActivity {
12 
13     private FragmentTabHost fragmentTabHost;
14     private String texts[] = { "首页", "消息", "好友", "广场", "更多" };
15     private int imageButton[] = { R.drawable.bt_home_selector,
16             R.drawable.bt_message_selector, R.drawable.bt_selfinfo_selector,R.drawable.bt_square_selector ,R.drawable.bt_more_selector};
17      private Class fragmentArray[] = {FragmentPage1.class,FragmentPage2.class,FragmentPage3.class,FragmentPage4.class,FragmentPage5.class};  
18 
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.activity_main);
23 
24         // 实例化tabhost
25         fragmentTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
26         fragmentTabHost.setup(this, getSupportFragmentManager(),
27                 R.id.maincontent);
28 
29         for (int i = 0; i < texts.length; i++) {
30             TabSpec spec=fragmentTabHost.newTabSpec(texts[i]).setIndicator(getView(i));
31             
32             fragmentTabHost.addTab(spec, fragmentArray[i], null);
33             
34             //设置背景(必须在addTab之后,由于需要子节点(底部菜单按钮)否则会出现空指针异常)
35             fragmentTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.bt_selector);
36         }
37 
38     }
39 
40     private View getView(int i) {
41         //取得布局实例
42         View view=View.inflate(MainActivity.this, R.layout.tabcontent, null);
43         
44         //取得布局对象
45         ImageView imageView=(ImageView) view.findViewById(R.id.image);
46         TextView textView=(TextView) view.findViewById(R.id.text);
47         
48         //设置图标
49         imageView.setImageResource(imageButton[i]);
50         //设置标题
51         textView.setText(texts[i]);
52         return view;
53     }
55 }
Android底部导航栏—FragmentTabHost+Fragment 介绍 Android开发中使用底部菜单栏的频次非常高,主要的实现手段有以下: - TabWidget - 隐藏TabWidget,使用RadioGroup和RadioButton - FragmentTabHost - 5.0以后的TabLayout - 最近推出的 Bottom navigation案例1:简单使用简单使用 FragmentTabHost 1 阅读详情

相关推荐

Android 侧滑菜单栏SlidingMenu优化实现(附源码)(SlidingMenu + FragmentTabHost)

Android项目中使用侧滑菜单栏功能的有很多量级很大的APP,比如QQ、OFO、Mobike等,所以该功能属于较为常见的、用户熟悉的功能,因此可以在任意的项目中使用。我之前就用开源库SlidingMenu实现过侧滑菜单栏,尽管SlidingMenu已经很久没有维护了,我还是打算用它来实现,毕竟轻车熟路能避免很多坑,同时网上的经验也能帮助我使用的更加轻松。 使用S...

一个灵活的胖子MrWang 5705

Android学习—Fragment的简单使用,并实现TabHost

最近学习了android开发中的Fragment,小编在这里将Fragment的使用方法和利用Fragment实现TabHost的步骤分享给大家 文字较少,并非长篇大论,还请大家认真阅读,若文中表述不当,还请大家给予批评和指导。 Fragment,翻译为“碎片”、“片段”。在整个安卓的学习中,Fragment作为一个相当重要的基础概念,它起到了以下几点作用 降低代码耦合度,替Activity...

Harrmison的学习轨迹 576

Android开发——使用fragment仿微信底部菜单栏

Android在3.0版本加入了Fragment,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以。然而现在Fragment的应用的场景越来越多,Fragment意为碎片的意思,就是为了替代TabActivity。 例如,微信下方的tab: 可以将Fragment理解为Activity的“碎片”,也就是其一部分,故而Fragment的

newAppZ 7499

FragmentTabHost 用法

一、FragmentTabHost结构如下图: FragmentTabHost 包含两个内容:TabWidget和FrameLayout。 标准的FragmentTabHost是TabWidget在上面,FrameLayout在下面。 如果想要制作TabWidget在下面的效果,可以在布局文件中手动添加一个FrameLayout,并将FragmentTabHost 中的FrameLayout...

solocoder的博客 4633

《Android 基础(三十八)》 FragmentTabHost

FragmentTabHost简单实用

AndroidKt 1372

Android最火的Framment实现tabhost效果

Framment实现tabhost效果

FragmentTabHost的使用

FragmentTabHost的使用

lunious的博客 458

揭秘cocos-mcp:如何用AI助手提升CocosCreator游戏开发效率

本文深入介绍了cocos-mcp工具,它作为连接AI助手与CocosCreator编辑器的桥梁,遵循MCP协议,能显著提升游戏开发效率。通过自然语言指令,开发者可让AI直接查询场景结构、批量修改属性或生成上下文代码,将重复操作变为智能调度,实现从“手动操作者”到“指令指挥官”的工作流变革。

weixin_29001683的博客 1051

Android的FragmentTabHost使用总结(顶部或底部菜单栏)

前言: 我们经常看到一些app的自带一些标签,并且可以来回进行切换, 本章我们就通过FragmentTabHost来学习一下其如何实现,效果图如下: 步骤一: 编写布局文件 <android.support.v4.app.FragmentTabHost android:layout_width="match_parent" androi

drinkingcode 4770

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 299

Modbus4J vs EasyModbus4J:哪个Java库更适合你的工业项目?

本文深入对比了Java领域两大Modbus通信库Modbus4J与EasyModbus4J。Modbus4J设计稳健、类型安全,适合复杂业务集成;EasyModbus4J基于Netty,在高并发场景下性能更优。文章从架构、性能、API及生产环境多维度分析,为工业物联网项目选型提供决策依据。

weixin_28475533的博客 312

使用DrawerLayout,FragmentTabHost实现测滑式底部菜单栏界面

最近学习了DrawerLayout,闲来无事把自己的学习记录记录下来: 首先是DrawerLayout布局 mainlayout.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.androi

Bighua_MM的博客 2371

单细胞分析进阶:sctransform标准化在Seurat中的实战解析

本文深入解析了sctransform标准化方法在Seurat单细胞分析中的实战应用。通过对比传统对数标准化,sctransform能更有效地建模并剔除技术噪音,提升数据质量。文章提供了从环境配置、数据准备、核心参数解析到完整流程整合的详细指南,并针对常见问题给出解决方案,帮助研究者获得更清晰的细胞分群和更可靠的差异表达结果。

weixin_29248313的博客 152

FragmentTabHost+Fragment实现底部菜单栏

实现顶部菜单栏的办法有很多,Tabhost已经不被推荐使用,这里实现一下啊FragmentTabHost+Fragment的实现方法 假设底部菜单栏有三个选项,所以我们要有三个Fragment,对这三个Fragment要分别实现三个Fragment继承类和三个XML文件,由于这三个都基本相同,以下只给出一个的内容 Fragment继承类实现package com.example.text;imp

编程,是个体力活 1510

在 Fiori Elements Object Page 的表格中用 UI.Hidden 隐藏列:语义、边界与落地实践全解析

摘要: Fiori Elements的Object Page表格中,UI.Hidden注解支持静态和动态隐藏列。动态隐藏分为两种:基于父实体属性隐藏整列,或基于子实体属性按行隐藏单元格。关键约束包括:支持服务端操作的列禁止使用动态隐藏,否则会导致UX不一致。ABAP CDS不支持路径式UI.Hidden,需改用XML注解。该功能需与UI.Importance、个性化等机制明确区分,避免混淆。对于可能参与排序/过滤的列,建议仅使用静态隐藏。实际应用中需注意注解位置(整列或单元格级)和业务场景的匹配。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 205

手把手教你学simulink(16.10)-- 基于Simulink的IIR滤波器(Infinite Impulse Response Filter)项目

基于Simulink的IIR滤波器(Infinite Impulse Response Filter)项目的详细实例介绍。这个项目将重点放在IIR滤波器的设计、实现和仿真上,帮助你理解和应用IIR滤波器在信号处理中的作用。

MHD0815的博客 706

利用Fragment和FragmentTabHost实现各类app底部菜单栏

当我们打开一个app时,你会发现,为了扩宽app的功能,几乎每一个app都使用了底部菜单栏。接下来让我们一起来学习如何搭建一个属于自己的底部菜单栏吧。    在android4.0之前,实现底部菜单栏是通过TabActivity,在4.0之后使用Fragment来代替该类的开发。舍弃原因大家可以看我给出的参考文章。    首先,创建一个项目,再activity.xml中编写布局,一开始如果不太

cankunfang的博客 1406

基于Simulink环境,提供一个关于如何对DC-DC变换器进行效率分析的仿真建模

效率定义:变换器效率通常定义为输出功率与输入功率之比,即 η=PoutPinη=Pin​Pout​​。重要性:高效率意味着更少的能量损失和更好的热管理,对于便携式设备、电动汽车等应用至关重要。挑战开关损耗:高频操作带来的开关器件损耗。导通损耗:电流流过电阻性元件(如MOSFET导通电阻)造成的能量损失。控制策略:优化控制算法以减少损耗。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的DC-DC变换器。根据工作频率和谐振元件值确定合适的电路参数。

xiaoheshang_123的博客 156

Android--FragmentTabHost+ViewPager+Fragment实现底部tab菜单栏

activity_main.xml <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tool

超宇的博客 2759

100天精通Python(基础篇)——第1天:Python从起源到应用的全面解析(附上Python、PyCharm、VSCode下载安装详细教程)

100天精通Python(基础篇)——第1天:Python从起源到应用的全面解析(附上Python、PyCharm、VSCode下载安装详细教程)

努力让自己发光,对的人才能迎着光而来 101万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Fragment实现底部菜单栏

【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏 既然 Fragment 取代了TabActivity,当然 TabActivity 的能实现的菜单栏,Fragment 当然也能实现。主要其实就是通过菜单栏的点击事件切换 Fragment 的显示和隐藏。 来看看栗子吧: 1.效果图来了:   2.代码具体实现 2.1 自定义底部菜单栏实现

qingxuan521721的博客 1155

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android 底部菜单栏

Android 底部菜单栏Activity的布局新建一些Fragment准备小图标文字的变化图标文字组合布局Activity里面的代码 工具: Android studio *环境: compileSdkVersion 28 com.android.tools.build:gradle:3.3.2 * 简介:使用到了FragmentTabHost实现底部导航,实现图标选中与未被选中的变化,更改了开...

QianQing_mio的博客 1513

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

用Fragment+FragmentTabHost++ViewPager 实现底部菜单栏

总体思路图总体设计思路 Fragment:存放不同选项的页面内容 FragmentTabHost:点击切换选项卡 ViewPager:实现页面的左右滑动效果 概念介绍FragmentTabHost用于实现点击选项进行切换选项卡的自定义效果 使用FragmentTabHost,就是先用TabHost“装着”Fragment,然后放进MainActivity里面 ViewPager 定义 ViewP

学渣罗小贱9*w4YBsXS@3W 647

FragmentTabHost+ViewPager可滑动菜单栏

前言 Android开发中使用底部菜单栏的频次非常高,主要的实现手段有以下: TabWidget 隐藏TabWidget,使用RadioGroup和RadioButton FragmentTabHost 5.0以后的TabLayout 最近推出的 Bottom navigation 在这我选择的是FragmentTabHost+ViewPager 总体设计思路 FragmentTabHost...

lipeiyong1993的博客 403

【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏

既然 Fragment 取代了TabActivity,当然 TabActivity 的能实现的菜单栏,Fragment 当然也能实现。主要其实就是通过菜单栏的点击事件切换 Fragment 的显示和隐藏。 来看看栗子吧: 1.效果图来了: 2.代码具体实现 2.1 自定义底部菜单栏实现方式 (1)对应的 Fragment 编辑代码和布局实现在前面的 Fragment介...

336
上一篇: as中apk签名和多渠道打包
下一篇: WebVeiw的使用随笔
掉头发程序员
博客等级 码龄10年 40粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值