Fragment碎片的基本使用(手机平板需要更好地兼容)

Android Fragment详解 一、什么是Fragment? Fragment:是Android3.0开始新增的概念,意为碎片。Fragment是依赖于Activity的,不能独立存在的。 二、为什么要有Fragment? Android运行在各种各样的设备中,有小屏幕的手机,还有大屏幕的平板,电视等。同样的界面在手机上显示可能很好看,在大屏幕的平板上就未必了,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。针... 阅读详情

碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的控件,因而在平板上应用得非常广泛。碎片其实与活动十分相似,同样都能包含布局,也同样拥有着自己的生命周期。你甚至可以将碎片理解成一个迷你型的活动,虽然这个迷你型的活动有可能和普通的活动是一样大的。接下来我们来了解下Fragment的具体使用。

新建一个FragmentTest项目,并且创建好一个平板模拟器,Android版本就8.0吧,虽然已经有9.0版本了,但是我发现个别平板模拟器无法自适应重力感应。

创建平板的步骤:

1.点击AVD Manager(AndroidVirtualDevice Manager)

2.点击左下角的Create Virtual Device...

3.选择Tablet,尺寸就选择一个8.86寸的吧

4.下面是选择一个Android设备的版本,这里如果你没有就需要下载一下,我选择的是8.1版本的

5.然后下一步下一步就创建好了

6.启动模拟器

具体请看图解:

这就把Android平板模拟器给创建好了。

我们准备先写一个最简单的碎片示例来练一练手,在一个活动当中添加两个碎片,并且让这两个碎片平分活动空间。

新建一个左侧碎片布局left_fragment.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="btn"
        android:textAllCaps="false" />
    
</LinearLayout>

这个布局很简单,只是放置了一个Button按钮,并且让它水平居中。然后新建右侧碎片布局right_fragment.xml,代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00ff00"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="This is right fragment"
        android:textSize="20sp" />

</LinearLayout>

可以看到,我们将这个布局的背景色设置成了绿色,并放置了一个TextView用于显示一段文本。

接着新建一个LeftFragment类,并让它继承自Fragment。注意,这里可能会有两个不同包下的Fragment供你选择,一个是系统内置的android.app.Fragment,一个是support-v4库中的android.support.v4.app.Fragment。这里我强烈建议你使用support-v4库(注意是support-v4)中的Fragment,因为它可以让碎片在所有Android系统版本中保持功能一致性。比如说在Fragment中嵌套使用Fragment,这个功能是在Android4.2系统中才开始支持的,如果你使用的是系统内置的Fragment,那么很遗憾,4.2系统之前的设备运行你的程序就会崩溃。而使用support-v4库中的Fragment就不会出现这个问题,只要你保证使用的是最新的support-v4库就可以了。另外,我们并不需要在build.gradle文件中添加support-v4库依赖,因为build.gradle文件已经添加了appcompat-v7库的依赖,而这个库会将support-v4库也一起引入进来。

现在编写一下LeftFragment中的代码,如下所示:

package com.example.administrator.fragmenttest;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class LeftFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.left_fragment, container, false);
        return view;
    }
}

这里仅仅是重写了Fragment的onCreateView()方法,然后在这个方法通过LayoutInflater的inflate()方法将刚才定义的left_fragment布局动态加载进来,整个方法简单明了。接着我们用同样的方法再新建一个RightFragment,代码如下所示:

package com.example.administrator.fragmenttest;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class RightFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.right_fragment, container, false);
        return view;
    }
}

接下来修改activity_main.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <fragment
        android:id="@+id/left_fragment"
        android:name="com.example.administrator.fragmenttest.LeftFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />

    <fragment
        android:id="@+id/right_fragment"
        android:name="com.example.administrator.fragmenttest.RightFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />
</LinearLayout>

效果图:

正如我们所期待的一样,两个碎片平分了整个活动的布局。不过这个例子实在是太简单了,在真正的项目中很难有什么实际的作用,因此我们马上来看一看关于碎片更加高级的使用技巧。

动态添加碎片:

碎片真正强大之处在于,它可以在程序运行时动态地添加到活动当中。根据具体情况来动态地添加碎片,你就可以将程序界面定制得更加多样化。

新建another_right_fragment.xml,代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffff00"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="This is another right fragment"
        android:textSize="20sp" />

</LinearLayout>

这个布局文件的代码和right_fragment.xml中的代码基本相同,只是将背景色改成了黄色,并将显示的文字改了改。然后新建AnotherRightFragment.java作为另一个右侧碎片,代码如下所示:

package com.example.administrator.fragmenttest;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class AnotherRightFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.another_right_fragment, container, false);
        return view;
    }
}

代码同样非常简单,在onCreateView()方法中加载了刚刚创建的another_right_fragment布局。这样我们就准备好了另外一个碎片,接下来看一下如何将它动态地添加到活动当中。

修改activity_main.xml代码(删除右边的<fragment/>标签,添加一个<FrameLayout/>):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <fragment
        android:id="@+id/left_fragment"
        android:name="com.example.administrator.fragmenttest.LeftFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />

    <FrameLayout
        android:id="@+id/right_layout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />

</LinearLayout>

可以看到,现在将右侧碎片替换成了一个FrameLayout中,这是Android中最简单的一种布局,所有的控件默认都会摆放在布局的左上角。由于这里仅需要在布局里放入一个碎片,不需要任何定位,因此非常适合使用FrameLayout。

下面我们将在代码中向FrameLayout里添加内容,从而实现动态添加碎片的功能。修改MainActivity中的代码,如下所示:

package com.example.administrator.fragmenttest;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private Button btn;

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

    private void initView() {
        btn = (Button) findViewById(R.id.btn);
    }

    @Override
    protected void onResume() {
        super.onResume();
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                replaceFragment(new AnotherRightFragment());//替换布局文件
            }
        });
    }

    private void replaceFragment(Fragment fragment) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.right_layout, fragment);
        fragmentTransaction.commit();
    }

}

可以看到,首先我们给左侧碎片中的按钮注册了一个点击事件,然后调用了我们自定义的一个replaceFragment()方法动态添加了RightFragment这个碎片。当点击左侧碎片中的按钮时,又会调用replaceFragment()方法将右侧碎片替换成AnotherRightFragment。结合replaceFragment()方法中的代码可以看出,动态添加碎片主要分为以下几个步骤:

步骤1:创建待添加的碎片实例

步骤2:创建FragmentManager(碎片管理器),通过getSupportFragmentManager()这个方法得到。

步骤3:开启一个FragmentTransaction事务,通过beginTransaction()方法开启

步骤4:向容器内添加或替换碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例。

步骤5:提交事务,调用commit()方法来完成。

这样就完成了活动中动态添加碎片的功能,重新运行一下程序。

实现效果图:

点击btn按钮:

 

在碎片中模拟返回栈

一行代码:

fragmentTransaction.addToBackStack(null);//接收一个名字用于描述返回栈的状态。

MainActivity.java代码:

package com.example.administrator.fragmenttest;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private Button btn;

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

    private void initView() {
        btn = (Button) findViewById(R.id.btn);
    }

    @Override
    protected void onResume() {
        super.onResume();
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                replaceFragment(new AnotherRightFragment());//替换布局文件
            }
        });
    }

    private void replaceFragment(Fragment fragment) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.right_layout, fragment);
        fragmentTransaction.addToBackStack(null);//接收一个名字用于描述返回栈的状态。
        fragmentTransaction.commit();
    }

}

这样就可以在点击btn按钮之后,点击手机back按钮就可以将碎片返回,再点击btn按钮,它又可以出来,就像返回栈中压栈、出栈一样。

 

碎片和活动之间进行通信:

虽然碎片都是嵌入在活动中显示的,可是实际上它们的关系并没有那么亲密。你可以看出,碎片和活动都是各自存在于一个独立的类当中的,它们之间并没有那么明显的方式来直接进行通信。如果想要在活动中调用碎片里的方法,或者在碎片中调用活动里的方法,应该如何实现呢?

为了方便碎片和活动之间进行通信,FragmentManager提供了一个类似于findViewById()的方法,专门用于从布局文件中获取碎片的实例,代码如下所示:

Activity中获取Fragment实例:

RightFragment right=(RightFragment) getSupportFragmentManager().findFragmentById(R.id.right_fragment);

调用FragmentManager的findFragmentById()方法,可以在活动中得到相应碎片的实例,然后就能轻松地调用碎片里的方法了。

Fragment中调用Activity实例:

MainActivity activity=(MainActivity) getActivity(); 

 

 

 

 

 

 

Fragment 实现简易新闻界面(适配手机与Pad) 一、前言 Android 在 Android 3.0(API 级别 11)中引入了 Fragment,主要目的是为大屏幕(如平板电脑)上更加动态和灵活的界面设计提供支持。由于平板电脑的屏幕尺寸远胜于手机屏幕尺寸,因而有更多空间可供组合和交换界面组件。 例如,新闻应用可以使用一个片段在左侧显示文章列表,使用另一个片段在右侧显示文章,两个片段并排显示在一个 Activity 中,每个片段都拥有自己的一套生命周期回调方法,并各自处理自己的用户输入事件。因此,用户无需使用一个 Activity 来选择文章,然后使用 阅读详情

相关推荐

Android 碎片(Fragment)

一、碎片是什么? 碎片是一种可以嵌入在活动中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。 碎片和活动很像,同样能包含布局,同样都有自己的生命周期。 如何使用碎片才能充分利用平板屏幕的空间(举例): 1)比如我们在开发一个新闻应用,在手机中设计方案: 如果在平板中也这么设计,会导致界面上有大量空白区域 因此,更好设计方案是将新闻标题列表界面和新闻详细内...

qq_43211455的博客 507

第5章:手机平板要兼顾,探究Fragment(笔记)

使用kotlin编写android程序

julicliy的博客 355

Android使用Fragment实现兼容手机和平板的程序demo

此为示例代码,详细讲解请参考 http://blog.youkuaiyun.com/sinyu890807/article/details/8744943

移动开发笔记(七) Fragment 手机和平板兼顾 简易新闻应用

1.1动态添加Fragment class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener{ replaceFragment(Ano

q327192368的博客 578

Fragment的使用,隐藏显示以及androidPad横竖屏切换

各个碎片之前的切换隐藏显示,以及androidPad横竖屏切换的使用demo

[GXYCTF2019]BabyUpload1 -- .htaccess文件解析与蚁剑实战指南

本文深入解析了[GXYCTF2019]BabyUpload1文件上传漏洞的实战利用。通过绕过后缀名与内容检测,上传包含PHP代码的.jpg文件,并利用.htaccess文件强制服务器将其解析为PHP脚本。文章详细介绍了.htaccess的原理、构造方法、Content-Type绕过技巧,并演示了如何使用中国蚁剑连接Webshell获取Flag,为Web安全学习提供了完整实战指南。

weixin_29016315的博客 508

第4章 手机平板要兼顾——探究碎片

需要注意的是,之前我们都是将适配器写成一个独立的类,其实也是可以写成内部类的,这里写成内部类的好处就是可以直接访问NewsTitleFragment的变量,比如isTwoPane。可以看到,在onCreate()方法中通过Intent获取到了传入的新闻标题和新闻内容,然后调用FragmentManager的findFragmentById()方法得到了NewsContentFragment的实例,接着调用它的refresh()方法,并将新闻的标题和内容传入,就可以把这些数据显示出来了。

Roderick888888的博客 1155

一图文带您认识磁编码器

磁编码器是以磁电原理技术生产的编码器。 磁编码器工作原理: 当电流通过一个位于磁场中的导体的时候,磁场会对导体中的电子产生一个垂直于电子运动方向上的的作用力,从而在垂直于导体与磁感线的方向上产生电势差。 如果让施加在这个导体上的磁场以电流流经路径为轴线,按照上图箭头所示的方向旋转,那么这个霍尔电势差就会因为磁场与导体之间角度的改变而发生变化,而这个电势差的变化趋势,与之前一文中次级线圈旋转时的输出电压一样,是一条正弦曲线。因此,基于这个通电导体两侧的电压,就可以反推计算出磁场旋转的角度了。 .

encoder_yang的博客 2万+

Android Fragment完全解析,关于碎片你所需知道的一切

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布局。因此,我们今天的主角Fragment登场了

郭霖的专栏 31万+

Cadence IC617仿真实践:有源电流镜的共模抑制比优化策略

本文基于Cadence IC617平台,详细介绍了有源电流镜共模抑制比(CMRR)的仿真与优化全流程。从电路搭建、DC工作点分析到AC仿真获取差模/共模增益,逐步解析CMRR计算方法。核心优化策略包括提升电流镜输出阻抗、优化差分对匹配性及调整晶体管尺寸,并探讨了与电源抑制比(PSRR)的权衡,为模拟集成电路设计提供实用指南。

weixin_29313817的博客 183

如何使用ArcGIS自动矢量化建筑

在显示的重分类对话框内,输入栅格选择提取单波段后的栅格,重分类分为三个层级,旧值分别为100-249、250-251和252-255,对应新值为1、2和3,旧值的最小和最大值不用修改,保持和原有的一致。同样在ArcToolbox内点击Spatial Analyst工具点击“重分类\重分类”,在重分类对话框内输入栅格选择之前重分类过后的图片,将旧值3的新值设置为1,这样分类后就只有两类。在显示的新建Shapefile对话框内,名称命名为折线,要素类型选择折线,点击编辑,设置坐标系为WGS 1984。

2162

安卓-碎片的使用入门

第四章-Android开发中的碎片 4.1 碎片是什么  碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用得非常广泛。虽然碎片对你来说应该是个全新的概念,但我相信你学习起来应该毫不费力,因为它和活动实在是太像了,同样都能包含布局,同样都有自己的生命周期。你甚至可以将碎片理解成一个迷你型的活动,虽然这个迷你型的活动有可能和普通的...

li_xunhuan的博客 2684

数据行小于列索引,内部模式表示可能存在问题

通过检查数据源的完整性和一致性,检查Debezium配置,检查列映射以及启用调试模式和日志记录,您应该能够解决这个错误。请注意,具体的解决方法可能因您的具体情况而异,因此您可能需要根据问题的根本原因进行适当的调整和修复。如果问题仍然存在,您可能需要进一步检查您的数据和配置,并根据具体情况进行调整和修复。在Debezium中,您可以使用列重命名和列映射来定义源和目标之间的列映射关系。通过检查日志,您可以查看详细的错误信息和堆栈跟踪,从而更好地理解问题的根本原因。首先,我们应该检查数据源的完整性和一致性。

XbtoMemory的博客 730

Fragment(碎片)-------让界面在平板上一样炫丽美观

参考:http://blog.youkuaiyun.com/harvic880925/article/details/38090845 一碎片概述 二碎片的使用方法 简单方法看参考 动态添加碎片看参考 3在碎片中模拟返回栈 1我们发现向活动中动态添加碎片后通过点击按钮添加了一个碎片之后按下Back键程序就会直接退出这里模仿类似于返回栈的效果按下Back键可以回到上一个碎片 2做法很简单 碎片和活动 以及 碎片和

womengmengyan的博客 1623

内存泄漏系列专题分析之二十一:高通相机CamX内存泄漏&内存占用分析--GPU内存拆解

通过上述debug方式,可以看到patch补丁可以顺利debug各种ION内存分布,可以通过它分析ION内存占用问题。同时我们还可以分析GPU内存泄漏问题,同样的方式可以看到所有的GPU内存分布,如果某个GPU内存持续增长,就极有可能内存泄漏,然后更具堆栈信息去分析代码,并解决GPU内存泄漏问题。!!

451

使用Android Studio调试系统应用之TvSettings(一):移植

对于做ROM的同仁、以及想要深入学习Android同学,必定会去调试Android的系统APK,而 *aosp* 源码中的系统APK源码,无法直接在Android Studio中进行调试,本文将持续更新细节,手把手教你,使用Android Studio调试安卓的系统应用。在每个阶段,提供知识点的梳理、总结,为您答疑解惑!

上周的博客 2054

Android 碎片fragment使用详解

作为一名专业的android开发人员,需要我们能够同时做到兼顾平板和手机。下面的内容会对你有一定帮助 目录 1.碎片介绍 2.碎片的基本使用 3.动态添加碎片 4.在碎片中模拟返回栈 5. 碎片和活动间的通信 6.碎片的生命周期 7.动态加载布局技巧提升 1.碎片介绍 碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在...

0729Liang 3798

21天学会PCIe专栏(4.3)--PCIe配置方法

通过本节的学习,你应该对PCIe配置方法有了更深入的了解。软件配置方法包括直接访问和间接访问,可以通过特定的I/O指令或系统调用进行配置。硬件配置方法包括通过BIOS/UEFI设置和跳线设置,可以根据需要修改PCIe设备的配置参数。

xiaoheshang_123的博客 722

Android Fragment完全解析及:: Android手机平板使用Fragment实现兼容手机和平板的程序

转载:http://blog.youkuaiyun.com/guolin_blog/article/details/8881711 我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的

人生起落,生活苦甜,坚持追求! 1902

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

碎片fragment

碎片(Fragment)是一种可以嵌入在活动当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。虽然碎片对你来说应该是个全新的概念, 但我相信你学习起来应该毫不费力, 因为它和活动实在是太像了, 同样都能包含布局,同样都有自己的生命周期。你甚至可以将碎片理解成一个迷你型的活动,虽然这个迷你型的活动有可能和普通的活动是一样大的。 那么究竟要如何使用碎片才能充

狂草. 755

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

第4章 手机平板要兼顾,探究碎片

第4章 手机平板要兼顾,探究碎片  当今是移动设备发展非常迅速的时代,不仅手机已经成为了生活必需品,就连平板电脑 也变得越来越普及。平板电脑和手机最大的区别就在于屏幕的大小,一般手机屏幕的大小会 在3英寸到5英寸之间,而一般平板电脑屏幕的大小会在7英寸到10英寸之间。屏幕大小 差距过大有可能会让同样的界面在视觉效果上有较大的差异,比如一些界面在手机上看起来 非常美观,但在平板电脑

lqq930609的博客 821

第004天:APP在平板上的UI布局设计

当今是移动设备发展非常迅速的时代,不仅手机已经成为了生活必需品,就连平板电脑也变 得越来越普及。平板电脑和手机最大的区别就在于屏幕的大小,一般手机屏幕的大小会在3英寸 到6英寸之间,而一般平板电脑屏幕的大小会在7英寸到10英寸之间。屏幕大小差距过大有可 能会让同样的界面在视觉效果上有较大的差异,比如一些界面在手机上看起来非常美观,但在平 板电脑上看起来就可能会有控件被过分拉长、元素之间空隙过大等情况。作为一名专业的Android开发人员,能够同时兼顾手机和平板的开发是我们必须做到的事情。 Android自3

m0_67474913的博客 3239

Android初识Fragment

Android初识Fragment

Android应用开发工程师 1950
上一篇: 编写精美的聊天界面(左边显示接收消息,右边显示发送消息)(项目已上传GitHub)
下一篇: 初识广播机制(监听网络状态的改变,监听网络是否可以使用)
Android_牧
博客等级 码龄9年 88粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值