最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)現(xiàn)Tab切換界面功能詳解

 更新時(shí)間:2022年05月26日 16:36:17   作者:米萊蝦  
這篇文章主要為大家詳細(xì)介紹了Android如何實(shí)現(xiàn)Tab切換界面的功能,以及對(duì)Tab變化事件進(jìn)行監(jiān)聽(tīng)。文中示例代碼講解詳細(xì),感興趣的可以了解一下

一、實(shí)驗(yàn)?zāi)康?/h2>

1. 掌握各種高級(jí)UI控件的基本使用;

2. 能夠?qū)崿F(xiàn)Tab切換效果。

二、實(shí)驗(yàn)任務(wù)

1. 根據(jù)原型圖設(shè)計(jì)界面;

2. 實(shí)現(xiàn)Tab切換;

三、實(shí)驗(yàn)內(nèi)容與要求

3.1 界面設(shè)計(jì):

(1)使用線性布局實(shí)現(xiàn)界面的基本布局;

(2)使用不同的Tab實(shí)現(xiàn)方式實(shí)現(xiàn)tab的布局。

3.2 Tab切換

(1)監(jiān)聽(tīng)Tab變化事件;

(2)切換對(duì)應(yīng)的頁(yè)面內(nèi)容;

四、實(shí)現(xiàn)效果

顯示界面

隱藏界面

移除界面

五、代碼實(shí)現(xiàn) 

Fragment

package com.example.shiyan3.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.shiyan3.R;
 
public class FirstFG extends Fragment {
    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";
 
    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;
    public FirstFG() {
        // Required empty public constructor
    }
 
 
    // TODO: Rename and change types and number of parameters
    public static FirstFG newInstance(String param1, String param2) {
        FirstFG fragment = new FirstFG();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_firstfg, container, false);
    }
}

主界面

package com.example.shiyan3;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.example.shiyan3.fragment.FirstFG;
 
public class  MainActivity extends AppCompatActivity {
    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;
    FirstFG fragment;
    Button badd,bremove,bshow,bhide;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        badd = this.findViewById(R.id.addFragment);
        bremove =this.findViewById(R.id.removeFragment);
        bshow = this.findViewById(R.id.showFragment);
        bhide = this.findViewById(R.id.hideFragment);
        fragment = new FirstFG();
        Bundle bundle = new Bundle();
        bundle.putString("key","this is String Value");
        fragment.setArguments(bundle);
 
        fragmentManager = this.getSupportFragmentManager();
 
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.fgcontainer,fragment,"FirstFragment");
        fragmentTransaction.commit();
 
        badd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.add(R.id.fgcontainer,fragment,"FirstFragment");
                fragmentTransaction.commit();
            }
        });
 
        bremove.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.remove(fragment);
                fragmentTransaction.commit();
            }
        });
 
        bshow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.show(fragment);
                fragmentTransaction.commit();
            }
        });
        bhide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.hide(fragment);
                fragmentTransaction.commit();
            }
        });
    }
}

六、實(shí)驗(yàn)總結(jié)

通過(guò)這次實(shí)驗(yàn),我學(xué)習(xí)了tab切換界面的增刪改查的操作,這些技能的熟練能夠?yàn)槲业倪M(jìn)一步學(xué)習(xí)打下了基礎(chǔ)。其次我了解到除了fragment,還有view、fragment+view等方法設(shè)計(jì)tab切換,它們各有特色,一者是點(diǎn)擊切換,一者是滑動(dòng)切換,組合后是一種復(fù)合功能。在此次學(xué)習(xí)中,仍有部分內(nèi)容需要加強(qiáng)。

以上就是Android實(shí)現(xiàn)Tab切換界面功能詳解的詳細(xì)內(nèi)容,更多關(guān)于Android Tab切換界面的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

句容市| 林西县| 佛坪县| 久治县| 阳江市| 广饶县| 武川县| 中牟县| 弥勒县| 洛扎县| 定兴县| 新巴尔虎左旗| 沐川县| 额济纳旗| 合江县| 北宁市| 辽阳县| 包头市| 镇赉县| 交城县| 油尖旺区| 常熟市| 唐海县| 大荔县| 西安市| 庄河市| 商南县| 北碚区| 柏乡县| 寿宁县| 英吉沙县| 特克斯县| 益阳市| 都安| 湘潭县| 勃利县| 清新县| 商丘市| 师宗县| 唐海县| 邢台市|