android studio向左向右滑動頁面

本文演示了Android Studio中使用ViewPager實現頁面切換的方法。通過創建包含3個頁面的ViewPager示例,詳細展示了實現步驟:1)在XML布局中配置ViewPager和切換按鈕;2)使用LayoutInflater動態加載頁面布局;3)自定義SimplePagerAdapter適配器;4)通過setCurrentItem()方法實現按鈕點擊切換頁面功能。代碼包含完整的Activity、Adapter實現以及頁面布局示例,適用于基礎ViewPager使用場景,如需ViewPager2版本也可提供。

實施軟件android studio

目標:

ViewPager類型的使用;

LayoutInflater類型布置頁面;

pages存儲頁面類型;

按鈕跳轉到頁面1;

實施代碼:

當然可以!下面是一個完整示例,演示如何使用 ViewPagersetCurrentItem() 方法來切換頁面。我們用三個簡單的頁面作為演示內容。


? 示例:點擊按鈕切換 ViewPager 頁面(使用 setCurrentItem

1. activity_main.xml 布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/btnPage1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="跳轉到第1頁" /><androidx.viewpager.widget.ViewPagerandroid:id="@+id/viewPager"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" />
</LinearLayout>

2. MainActivity.java 代碼:

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
import java.util.List;
import android.view.LayoutInflater;
import android.view.ViewGroup;public class MainActivity extends AppCompatActivity {private ViewPager mViewPager;private Button btnPage1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mViewPager = findViewById(R.id.viewPager);btnPage1 = findViewById(R.id.btnPage1);// 創建頁面視圖List<View> pages = new ArrayList<>();LayoutInflater inflater = getLayoutInflater();pages.add(inflater.inflate(R.layout.page1, null));pages.add(inflater.inflate(R.layout.page2, null));pages.add(inflater.inflate(R.layout.page3, null));// 設置適配器SimplePagerAdapter adapter = new SimplePagerAdapter(pages);mViewPager.setAdapter(adapter);// 點擊按鈕跳轉到第一頁btnPage1.setOnClickListener(v -> mViewPager.setCurrentItem(0));  // index 0 = 第1頁}
}

3. SimplePagerAdapter:

package com.example.myapplication;import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import androidx.viewpager.widget.PagerAdapter;
import java.util.List;public class SimplePagerAdapter extends PagerAdapter {private final List<View> mViewList;public SimplePagerAdapter(List<View> viewList) {this.mViewList = viewList;}@Overridepublic int getCount() {return mViewList.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {boolean result = (view == object);Log.d("isViewFromObject", "判斷結果: " + result);return result;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {View view = mViewList.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);}
}

4. 示例頁面布局 page1.xmlpage2.xmlpage3.xml

例如 res/layout/page1.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:text="頁面 1"android:textSize="30sp" />

另外兩個頁面內容類似,改一下 text="頁面 2"text="頁面 3" 即可。


如果你使用的是 ViewPager2 而不是舊的 ViewPager,用法稍有不同,我也可以給你新版代碼。需要的話可以告訴我。

運行效果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83299.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83299.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83299.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據可視化新姿勢:Altair的聲明式魔法

文章目錄 一、告別編程式繪圖的苦日子二、5分鐘極速入門安裝篇&#xff08;記得先備好虛擬環境&#xff01;&#xff09;核心三劍客 三、高階玩法揭秘1. 交互功能秒實現2. 復合圖表so easy3. 魔改樣式有套路 四、避坑指南&#xff08;血淚經驗&#xff09;五、Altair vs 其他庫…

PostgreSQL --數據庫操作

一、基本操作 1、登錄 #切換pg用戶 su - postgres#重啟服務 pg_ctl -D /usr/local/pgsql/data -l logfile restart#進入pg psql2、數據庫操作 2.1、列出庫 \l\lselect datname from database; \l&#xff1a;輸出比\l多了Size,Tablespace 和 Description 列 &#xff1a;擴展輸…

樹莓派超全系列教程文檔--(63)rpicam-apps可用選項介紹之常用選項

rpicam-apps可用選項介紹之常用選項 rpicam-apps 選項參考常用選項helpversionlist-camerascameraconfigtimeoutpreviewfullscreenqt-previewnopreviewinfo-textwidth 和 heightviewfinder-width 和 viewfinder-heightmode打包格式詳細信息解壓格式詳細信息 viewfinder-modelor…

AI的發展過程:深度學習中的自然語言處理(NLP);大語言模型(LLM)詳解;Transformer 模型結構詳解;大模型三要素:T-P-G 原則

AI的發展過程&#xff1a;深度學習中的自然語言處理&#xff08;NLP&#xff09;&#xff1b;大語言模型&#xff08;LLM&#xff09;詳解&#xff1b;Transformer 模型結構詳解&#xff1b;大模型三要素&#xff1a;T-P-G 原則 AI的發展過程與大模型原理詳解一、AI的發展過程符…

SDXL 和 SDXL-Turbo 的區別

(1) SDXL&#xff08;Stable Diffusion XL&#xff09; 標準擴散模型&#xff0c;基于傳統的多步去噪&#xff08;通常 20~50 步&#xff09;。 訓練充分&#xff0c;特征更穩定&#xff0c;適合用于特征提取、方向學習&#xff08;如 LoRA、SAE&#xff09;。 計算成本高&am…

PyTorch:讓深度學習像搭積木一樣簡單!!!

文章目錄 &#x1f680; 一、 PyTorch的王炸&#xff1a;動態圖 vs 靜態圖靜態圖的“痛苦回憶”&#xff08;前方高能吐槽&#xff01;&#xff09;PyTorch動態圖的降維打擊&#x1f525; &#x1f525; 二、 不只是靈活&#xff01;PyTorch的三大殺器1. 張量&#xff08;Tenso…

LeetCode--27.移除元素

解題思路&#xff1a; 1.獲取信息&#xff1a; 給定一個數組和一個值&#xff0c;刪除數組中等于這個值的值 要求是&#xff0c;返回數組中不等于這個值的數的數目 并且要求在數組上刪除&#xff0c;不能使用額外輔助空間 還是給了評測標準&#xff08;你可以根據它的原理來實現…

WebRTC(二):工作機制

核心組成 GetUserMedia&#xff1a;獲取本地音視頻設備&#xff08;攝像頭、麥克風&#xff09;數據流。RTCPeerConnection&#xff1a;實現點對點的媒體流傳輸和網絡連接管理。RTCDataChannel&#xff1a;點對點的任意數據通道&#xff08;除音視頻外傳輸數據&#xff09;。 …

機器學習+城市規劃第十五期:時空地理加權回歸(STGWR)

機器學習城市規劃第十五期&#xff1a;時空地理加權回歸&#xff08;STGWR&#xff09; 引言 隨著城市化進程的加速&#xff0c;城市規劃面臨越來越多復雜的挑戰。在傳統的城市規劃中&#xff0c;通常會考慮到地理位置的影響&#xff0c;但往往忽略了時間維度。而在現代城市的…

用虛擬機安裝macos系統之后進入Boot Manager頁面

安裝教程&#xff1a;在VMware中安裝macos系統教程 在VMware中安裝macos系統時啟動后進入Boot Manager界面&#xff0c;通常是由于虛擬機的固件類型設置于鏡像不兼容所致。 解決辦法&#xff1a;虛擬機默認使用UEFI啟動模式&#xff0c;但是部分macos鏡像需要切換到BIOS模式才…

基于API的Redis緩存實現

1.使用Redis API 進行業務數據緩存管理 編寫一個進行業務處理的類ApiCommentService,使用Autowired注解注入Redis API中常用的RedisTemplate&#xff08;類似于Java基礎API中的JdbcTemplate&#xff09;&#xff1b; 然后在數據查詢、修改和刪除三個方法中&#xff0c;根據業…

前沿論文匯總(機器學習/深度學習/大模型/搜廣推/自然語言處理)

文章目錄 1 前言2 大模型/自然語言處理2.1 FreeAL&#xff1a;在大模型時代實現無需人工的主動學習2.2 COLD&#xff1a;中文攻擊性語言檢測基準2.3 將詞匯的對比信息融入詞嵌入以實現反義詞-同義詞區分2.4 LogRAG&#xff1a;基于檢索增強生成的半監督日志異常檢測2.5 RankRAG…

PP-OCRv5 ubuntu20.04 OCR識別服務

目錄 說明 使用 效果 下載 說明 PP-OCRv5 ubuntu20.04 OCR識別服務 使用 1、下載后解壓 2、進入目錄、運行程序 效果 1、瀏覽器訪問 2、接口調用 下載 方式1 源碼下載 方式2 通過網盤分享的文件&#xff1a;lw.PP_OCRService.tar.gz 鏈接: https://pan.baidu.com…

VScode打開后一直顯示正在重新激活終端 問題的解決方法

一、問題 本人打開“.py”文件后&#xff0c;同時會出現以下兩個問題。 1、VScode一直循環在”正在重新激活終端“ 2、日志顯示intellicode報錯&#xff1a; Sorry, something went wrong activating IntelliCode support for Python. Please check the “Python” and “VS I…

uniapp 實現騰訊云音視頻通話功能

uniapp 深度集成騰訊云音視頻通話功能實戰指南 一、技術架構解析 騰訊云音視頻解決方案采用IM信令控制層TRTC媒體傳輸層的雙架構設計&#xff0c;實現核心能力解耦&#xff1a; #mermaid-svg-DKBpT4CVDkqU1IBw {font-family:"trebuchet ms",verdana,arial,sans-ser…

linux常見問題之截取文件指定行數

linux常見問題之截取文件指定行數 一、命令概述 在處理大文本文件時&#xff0c;我們打開該文件會非常不方便&#xff0c;比如服務器上的日志文件&#xff0c;于是我們常常需要提取特定的行進行分析。Linux 系統中提供了多個強大的命令行工具&#xff0c;可以幫助我們高效地完…

微前端 - Native Federation使用完整示例

這是一個極簡化的 Angular 使用angular-architects/native-federation 插件的微前端示例&#xff0c;只包含一個主應用和一個遠程應用。 完整示例展示 項目結構 federation-simple/ ├── host-app/ # 主應用 └── remote-app/ # 遠程應用 創建遠程應用 (remote…

無服務器架構的企業級應用深度解析:Serverless技術選型與成本模型

?? 目錄 引言:無服務器架構的興起無服務器架構核心概念主流Serverless平臺技術對比企業級應用場景分析成本模型深度分析私有化部署與云端服務對比決策框架構建最佳實踐與建議未來發展趨勢結論引言:無服務器架構的興起 在云計算快速發展的今天,無服務器架構(Serverless)…

內網有貓和無線路由器,如何做端口映射從而實現外網訪問

內網貓和無線路由器端口映射配置指南 端口映射&#xff08;Port Forwarding&#xff09;是將外網請求引導到內網特定設備和端口的技術&#xff0c;常用于遠程訪問、搭建服務器等場景。以下是配置方法&#xff1a; 基本原理 貓&#xff08;調制解調器&#xff09;&#xff1a…

Spring boot應用監控集成

Spring Boot應用監控集成記錄 背景 XScholar文獻下載應用基于Spring Boot構建&#xff0c;需要接入Prometheus監控系統。應用已部署并運行在服務器上&#xff0c;需要暴露metrics端點供Prometheus采集。 初始狀態 應用信息 框架: Spring Boot 2.x部署端口: 10089服務器: L…