中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

操作簡單網(wǎng)站搭建費用網(wǎng)站免費搭建平臺

操作簡單網(wǎng)站搭建費用,網(wǎng)站免費搭建平臺,博客網(wǎng)站做啥好,長沙租房網(wǎng)修改代碼 現(xiàn)在的ItemClick使得用戶單擊其中一個項目時就會跳轉(zhuǎn),現(xiàn)在要修改其使得在一個小屏幕設(shè)備上才會這樣做,在一個大屏幕設(shè)備上運行用戶選擇一個訓(xùn)練項目時在右邊的片段顯示響應(yīng)的信息。 希望片段處理后退的方式:假設(shè)用戶在手機上運行這…

修改代碼

現(xiàn)在的ItemClick使得用戶單擊其中一個項目時就會跳轉(zhuǎn),現(xiàn)在要修改其使得在一個小屏幕設(shè)備上才會這樣做,在一個大屏幕設(shè)備上運行用戶選擇一個訓(xùn)練項目時在右邊的片段顯示響應(yīng)的信息。

希望片段處理后退的方式:假設(shè)用戶在手機上運行這個應(yīng)用,單擊一個訓(xùn)練項目時,會在另一個活動中顯示這個訓(xùn)練項目的詳細信息。如果用戶單擊后退按鈕,他們會回到訓(xùn)練項目列表。在平板上后退時則希望回到之前選擇的第一個項目,回到前一個片段的狀態(tài)。

后退堆棧

在應(yīng)用中從一個活動訪問到另一個活動時,Android會把各個活動增加到一個后退堆棧,來跟蹤你訪問過的所有活動,后退堆棧是一個日志,記錄了你在設(shè)備上訪問過的所有地方,每個地方記錄為一個單獨的事務(wù)。
后退堆棧不止適用于活動,還適用于任何類型的事務(wù),包括對片段的改變。

如何將片段的變化作為單獨的事務(wù)記錄到后退堆棧呢?
每次用戶選擇一個不同的訓(xùn)練項目時,我們都要把整個WorkoutDetailFragment替換為一個新實例,WorkoutDetailFragment的各個新實例將顯示用戶選擇的訓(xùn)練項目的詳細信息。這樣我們就能把各個片段替換作為單獨的事務(wù)增加到后退堆棧。每次用戶單擊后退按鈕時,最近的事務(wù)就會從棧頂退出,用戶會看到他們選擇的前一個訓(xùn)練項目的信息。

使用幀布局替換片段

將activity_main.xml(large)中的代碼替換如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"><fragmentandroid:name="com.hfad.workout.WorkoutListFragment"android:id="@+id/list_frag"android:layout_width="0dp"android:layout_weight="2"android:layout_height="match_parent"/><FrameLayoutandroid:id="@+id/fragment_container"android:layout_width="0dp"android:layout_weight="3"android:layout_height="match_parent" />
</LinearLayout>

然后我們可以通過布局差別區(qū)分設(shè)備使用的布局,通過檢查布局是否包含上一頁我們增加的幀布局來區(qū)分所使用的布局版本,代碼如下:

 View fragmentContainer = findViewById(R.id.fragment_container);if (fragmentContainer != null){}else {

使用片段事務(wù)

只要活動在允許,可以通過編程向活動的布局增加一個片段。為此只需要一個用來放置片段的視圖組,如幀布局。可以使用片段事務(wù)在運行時增加、替換或刪除片段。片段事務(wù)是與片段有關(guān)的一組連續(xù)的片段。
創(chuàng)建一個片段事務(wù)時,需要做三件事:
1、開始事務(wù)
這會告訴Android你要啟動一系列改變,這些改變要記錄在一個事務(wù)中。
2、指定改變
這些是事務(wù)中要包含的所有動作。這可能包括增加、替換或刪除一個片段、更新它的數(shù)據(jù),以及把它增加到后退堆棧。
3、提交事務(wù)
這會完成事務(wù),并應(yīng)用所做的改變。
1、開始事務(wù)
開始一個事務(wù)時,首先得到活動的片段管理器的一個引用。從上一章可以知道,片段管理器用于管理活動使用的所有片段。如果你使用了支持庫片段,要使用以下方法得到片段管理器的引用:

getSupportFragmentManager()

一旦有了片段管理器的引用,可以調(diào)用它的beginTransaction()方法開始事務(wù):

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

2、指定改變
開始事務(wù)后,需要指出這個事務(wù)包括哪些片段。
如果想為活動的布局增加一個片段,可以調(diào)用片段事務(wù)的add()方法。這個方法有兩個參數(shù),要加入片段的那個視圖組的資源ID,以及你想要增加的片段。代碼如下:

//創(chuàng)建片段
WorkoutDetailFragment fragment = new WorkoutDetailFragment();
//將片段添加到ViewGroup
transaction.add(R.id.fragment_container, fragment);
//替換片段
transaction.replace(R.id.fragment_container, fragment);
//刪除片段
transaction.remove(fragment);
//設(shè)置事務(wù)過渡動畫(非必需)
transaction.setTransition(transaction);
//將事務(wù)增加到后退堆棧中,其參數(shù)是一個String類,可以作為事務(wù)的標簽,大多數(shù)情況下都不需要指定事務(wù)的標簽傳入null
transaction.addToBackStack(null);

3、提交事務(wù)

//提交事務(wù)
transaction.commit();

更新MainActivity中的itemClicked方法

package com.hfad.workout;import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;import android.content.Intent;
import android.os.Bundle;
import android.view.View;public class MainActivity extends AppCompatActivity implements WorkoutListFragment.Listener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic void itemClicked(long id) {View fragmentContainer = findViewById(R.id.fragment_container);if (fragmentContainer != null){WorkoutDetailFragment details = new WorkoutDetailFragment();FragmentTransaction ft = getSupportFragmentManager().beginTransaction();details.setWorkoutId(id);//每次用戶單擊一個訓(xùn)練項目時,要把這個片段替換為它的一個新實例//這是WorkoutDetailFragment的一個新實例,它會顯示用戶選擇的那個訓(xùn)練項目的詳細信息。ft.replace(R.id.fragment_container, details);//設(shè)置片段淡入淡出ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);//將這個事務(wù)增加到后退堆棧ft.addToBackStack(null);ft.commit();}else {Intent intent = new Intent(this, DetailActivity.class);intent.putExtra(DetailActivity.EXTRA_WORKOUT_ID, (int)id);startActivity(intent);}}
}

試著運行一下,可以達到預(yù)期效果了
在這里插入圖片描述

旋轉(zhuǎn)屏幕時會出問題

選裝設(shè)備時,Android會撤銷然后重新創(chuàng)建活動,如果該活動使用了一個片段,這個片段會隨著這個活動撤銷和重建。所以仍然需要更新onSaveInstance保存信息,在onreate中取出。
更新WorkoutDetailFragment.java

package com.hfad.workout;import android.os.Bundle;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;import android.os.PersistableBundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;public class WorkoutDetailFragment extends Fragment {//用來表示用戶選擇的訓(xùn)練項目的IDprivate long workoutId;@Override//Android需要這個片段的布局時會調(diào)用這個方法public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// 這會告訴Android這個片段使用哪個布局return inflater.inflate(R.layout.fragment_workout_detail, container, false);}@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (savedInstanceState != null){workoutId = savedInstanceState.getLong("workoutId");}}public void onStart() {super.onStart();//得到片段的根視圖,然后使用這個根視圖得到兩個文本視圖的引用View view = getView();if (view != null) {TextView title = (TextView) view.findViewById(R.id.textTitle);Workout workout = Workout.workouts[(int)workoutId];title.setText(workout.getName());TextView description = (TextView) view.findViewById(R.id.textDescription);description.setText(workout.getDescription());}}public void setWorkoutId(long id) {this.workoutId = id;}@Overridepublic void onSaveInstanceState(@NonNull Bundle outState) {super.onSaveInstanceState(outState);outState.putLong("workoutId", workoutId);}
}

自此、大功告成!

http://m.risenshineclean.com/news/61456.html

相關(guān)文章:

  • wordpress手機號網(wǎng)站企業(yè)seo培訓(xùn)
  • 中國的網(wǎng)站域名新媒體營銷案例分析
  • 程序員做彩票網(wǎng)站違法嗎競價廣告推廣
  • php+開發(fā)動態(tài)網(wǎng)站開發(fā)百度推廣的四種收費形式
  • 高端網(wǎng)站鑒賞哈爾濱百度搜索排名優(yōu)化
  • 網(wǎng)站開發(fā)外快百度自動搜索關(guān)鍵詞軟件
  • 長沙網(wǎng)紅美食seo型網(wǎng)站
  • 蔬菜基地做網(wǎng)站合適嗎金戈枸櫞酸西地那非片
  • 線上網(wǎng)站開發(fā)系統(tǒng)流程網(wǎng)絡(luò)營銷的宏觀環(huán)境
  • 河南鄭州暴雨傷亡seo標題優(yōu)化分析范文
  • 威海網(wǎng)站建設(shè)是什么seo基礎(chǔ)知識培訓(xùn)
  • 財務(wù)咨詢網(wǎng)站模板網(wǎng)站推廣的方式和方法
  • nas服務(wù)器 做網(wǎng)站推廣注冊app賺錢平臺
  • 網(wǎng)站續(xù)費管理系統(tǒng)合肥網(wǎng)站排名提升
  • 網(wǎng)站開發(fā)學(xué)校推廣網(wǎng)站源碼
  • seo網(wǎng)站做推廣寧德市中醫(yī)院
  • 建英語網(wǎng)站好廣西網(wǎng)站建設(shè)
  • 網(wǎng)站建設(shè)的流程范文1500字百度指數(shù)網(wǎng)
  • 網(wǎng)站建設(shè)屬于什么行業(yè)分類網(wǎng)絡(luò)銷售怎么做才能做好
  • 網(wǎng)站建設(shè)高端培訓(xùn)目前引流最好的app
  • 專業(yè)國外建設(shè)網(wǎng)站遼寧和生活app下載安裝
  • 網(wǎng)站建設(shè) 徐州seo網(wǎng)絡(luò)推廣機構(gòu)
  • 織夢cms零基礎(chǔ)做網(wǎng)站今日百度關(guān)鍵詞排名
  • c網(wǎng)站開發(fā)視頻教程萬網(wǎng)注冊域名
  • 做網(wǎng)站的管理員咋找搜索引擎網(wǎng)站優(yōu)化和推廣方案
  • 訂餐網(wǎng)站開發(fā)方案北京seo公司
  • seo排行榜年度10佳網(wǎng)站最有效的線下推廣方式
  • 網(wǎng)站開發(fā)軟件測試報告寧德市高中階段招生信息平臺
  • 網(wǎng)站版權(quán)符號什么是搜索引擎營銷
  • 廣州網(wǎng)站制作教程百度首頁登錄