深入探討 com.android.support

一、com.android.support:design

1、com.android.support:design 是 Android 官方提供的一個用於 Material Design 風格的 UI 控制項庫。通常使用在 Android App 開發中,可以幫助開發者快速、簡單的實現 Material Design 風格的界面。下面是一個實現 Toolbar 和 Navigation Drawer 的示例代碼:

XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        </android.support.design.widget.AppBarLayout>

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/nav_menu" />

</android.support.v4.widget.DrawerLayout>

Java 代碼:
public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;
    private Toolbar mToolbar;

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

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mToolbar = (Toolbar) findViewById(R.id.toolbar);

        setSupportActionBar(mToolbar);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, mDrawerLayout, mToolbar, R.string.app_name, R.string.app_name);
        mDrawerLayout.addDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                // Handle navigation view item clicks here.
                int id = item.getItemId();

                if (id == R.id.nav_home) {
                    // Handle the home action
                } else if (id == R.id.nav_messages) {
                    // Handle the messages action
                } else if (id == R.id.nav_friends) {
                    // Handle the friends action
                }

                mDrawerLayout.closeDrawer(GravityCompat.START);
                return true;
            }
        });
    }
}

2、以上代碼實現了 Toolbar 和 Navigation Drawer 控制項的顯示,通過調用 ActionBarDrawerToggle 類的 syncState() 方法可以使 Toolbar 和 Navigation Drawer 並聯使用。此外,NavigationView 控制項的 setNavigationItemSelectedListener() 方法用於響應 NavigationView 中菜單項的選擇事件。

二、com.android.support:percent

1、com.android.support:percent 是 Android 官方提供的一個用於百分比布局的 UI 控制項庫。它是基於 RelativeLayout 布局實現的,可以讓開發者使用百分比的方式來布局控制項。下面是一個通過百分比布局控制 ImageView 大小的示例代碼:

XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_heightPercent="50%"
        app:layout_marginStartPercent="25%"
        app:layout_marginTopPercent="25%"
        app:layout_widthPercent="50%"
        android:src="@drawable/image" />

</RelativeLayout>

2、以上代碼中,通過使用 app:layout_heightPercent、app:layout_marginStartPercent、app:layout_marginTopPercent、app:layout_widthPercent 屬性控制 ImageView 的大小和位置。這裡 app:layout_heightPercent、app:layout_widthPercent 屬性的值為 “50%”,表示 ImageView 的高和寬整體都是相對於父布局的一半。而 app:layout_marginStartPercent、app:layout_marginTopPercent 屬性的值為 “25%”,則表示 ImageView 的左偏移量和上偏移量都是相對於父布局的一4分之一。

三、com.android.support:appcompat-v7

1、com.android.support:appcompat-v7 是 Android 官方提供的一個用於支持舊版 Android 系統的 UI 控制項庫。通常使用在兼容性開發中,可以保證 App 在不同版本的 Android 系統上都能正常運行。下面是一個實現 Toolbar 的示例代碼:

XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:title="My Toolbar" />

Java 代碼:
public class MainActivity extends AppCompatActivity {

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

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
}

2、以上代碼實現了 Toolbar 控制項的顯示,並分別在 XML 和 Java 中設置了其大小、背景色和標題。此外,在 Java 中調用 setSupportActionBar() 方法可以讓 Toolbar 接管 Activity 的 ActionBar。

四、com.android.support.constraint

1、com.android.support.constraint 是 Android 官方提供的一個用於約束布局(ConstraintLayout)的 UI 控制項庫。引入它可以在布局中使用 ConstraintLayout,進行複雜和響應式布局的開發,大大提高了 UI 布局的靈活性和可讀性。下面是一個使用 ConstraintLayout 實現登錄界面的示例代碼:

XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/logo"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@id/verticalGuideline" />

    <android.support.constraint.Guideline
        android:id="@+id/verticalGuideline"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintGuide_percent="0.5" />

    <EditText
        android:id="@+id/usernameEditText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="Username"
        android:inputType="text"
        app:layout_constraintTop_toBottomOf="@id/verticalGuideline"
        app:layout_constraintStart_toStartOf="@id/guideline"
        app:layout_constraintEnd_toEndOf="@id/guideline" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintGuide_percent="0.35" />

    <EditText
        android:id="@+id/passwordEditText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="Password"
        android:inputType="textPassword"
        app:layout_constraintTop_toBottomOf="@id/usernameEditText"
        app:layout_constraintStart_toStartOf="@id/guideline"
        app:layout_constraintEnd_toEndOf="@id/guideline" />

    <Button
        android:id="@+id/loginButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Login"
        app:layout_constraintTop_toBottomOf="@id/passwordEditText"
        app:layout_constraintStart_toStartOf="@id/guideline"
        app:layout_constraintEnd_toEndOf="@id/guideline" />

</android.support.constraint.ConstraintLayout>

2、以上代碼使用 ConstraintLayout 實現了登錄界面,通過設置 Guideline 控制項的位置和百分比,實現了 ImageView、EditText 和 Button 的位置控制。此外,ConstraintLayout 還可以通過設置約束比例、權重、尺寸等屬性來控制 UI 控制項的位置和大小,具有更高的靈活性和可擴展性。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237273.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:04
下一篇 2024-12-12 12:04

相關推薦

  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、輕量級、可擴展的RPC框架。其廣泛被應用於阿里集團內部服務以及阿里雲上的服務。該框架通過NIO支持高並發,同時還內置了多種…

    編程 2025-04-29
  • Android ViewPager和ScrollView滑動衝突問題

    Android開發中,ViewPager和ScrollView是兩個常用的控制項。但是當它們同時使用時,可能會發生滑動衝突的問題。本文將從多個方面介紹解決Android ViewPa…

    編程 2025-04-28
  • Android如何點擊其他區域收起軟鍵盤

    在Android應用中,當輸入框獲取焦點彈出軟鍵盤後,我們希望能夠點擊其他區域使軟鍵盤消失,以提升用戶體驗。本篇文章將說明如何實現這一功能。 一、獲取焦點並顯示軟鍵盤 在Andro…

    編程 2025-04-28
  • Android Studio HUD 實現指南

    本文將會以實例來詳細闡述如何在 Android Studio 中使用 HUD 功能實現菊花等待指示器的效果。 一、引入依賴庫 首先,我們需要在 build.gradle 文件中引入…

    編程 2025-04-27
  • Android和Vue3混合開發方案

    本文將介紹如何將Android和Vue3結合起來進行混合開發,以及其中的優勢和注意事項。 一、環境搭建 在進行混合開發之前,需要搭建好相應的開發環境。首先需要安裝 Android …

    編程 2025-04-27
  • Java Support包用法介紹

    Java的Support包是Java中提供的一個非常強大的工具庫,可以幫助開發者解決許多問題,提高開發效率。本文將從多個方面對Java Support包進行詳細的闡述。 一、數據結…

    編程 2025-04-27
  • Android Java Utils 可以如何提高你的開發效率

    Android Java Utils 是一款提供了一系列方便實用的工具類的 Java 庫,可以幫助開發者更加高效地進行 Android 開發,提高開發效率。本文將從以下幾個方面對 …

    編程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在開發過程中引入了新的API `defineExpose`。在以前的版本中,我們經常使用 `$attrs` 和` $listeners` 實現父組件與子組件之間的通信,但…

    編程 2025-04-25
  • 深入理解byte轉int

    一、位元組與比特 在討論byte轉int之前,我們需要了解位元組和比特的概念。位元組是計算機存儲單位的一種,通常表示8個比特(bit),即1位元組=8比特。比特是計算機中最小的數據單位,是…

    編程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什麼是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一個內置小部件,它可以監測數據流(Stream)中數據的變…

    編程 2025-04-25

發表回復

登錄後才能評論