Fragment制作标签

Fragment制作标签

效果图如下:

 

当点击上面的标签时,低下会显示出相应的标签页面,具体实现如下:

1)首先在Main_Activity.xml文件中配置如下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

 

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

     <TextView

         android:id="@+id/tab1"

         android:layout_width="0dip"

         android:layout_height="wrap_content"

         android:layout_weight="1"

         android:gravity="center"

         android:text="生活新闻"/>    

     <TextView

         android:id="@+id/tab2"

         android:layout_width="0dip"

         android:layout_height="wrap_content"

         android:layout_weight="1"

         android:gravity="center"

         android:text="军事新闻"/>    

     <TextView

         android:id="@+id/tab3"

         android:layout_width="0dip"

         android:layout_height="wrap_content"

         android:layout_weight="1"

         android:gravity="center"

         android:text="娱乐新闻"/>    

     <TextView

         android:id="@+id/tab4"

         android:layout_width="0dip"

         android:layout_height="wrap_content"

         android:layout_weight="1"

         android:gravity="center"

         android:text="百度新闻"/>    

    </LinearLayout>

    

    <LinearLayout

        android:id="@+id/content"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical">

        

    </LinearLayout>

    

</LinearLayout>

 

2)分别建立四个用于显示标签页内容的而已文件

fragment1.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" 

    android:gravity="center"

    android:layout_gravity="center">

<TextView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="生活新闻"/>

</LinearLayout>

 

fragment2.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"

android:gravity="center">

<TextView 

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="军事新闻"/>

</LinearLayout>

 

fragment3.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" 

    android:gravity="center">

    <TextView 

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="娱乐新闻"/>

</LinearLayout>

 

fragment4.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" 

    android:gravity="center">

<TextView 

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="百度新闻"/>

</LinearLayout>

 

3)在MainActivity.java类中实现如下代码:

package zjh.android.fragmenttab;

 

import android.app.Activity;

import android.app.FragmentManager;

import android.app.FragmentTransaction;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.TextView;

 

public class MainActivity extends Activity implements OnClickListener {

private TextView tab1,tab2,tab3,tab4;

FragmentManager fm = null ;

FragmentTransaction ft = null ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

super.setContentView(R.layout.activity_main);

this.tab1 = (TextView)super.findViewById(R.id.tab1);

this.tab2 = (TextView)super.findViewById(R.id.tab2);

this.tab3 = (TextView)super.findViewById(R.id.tab3);

this.tab4 = (TextView)super.findViewById(R.id.tab4);

this.tab1.setOnClickListener(this);

this.tab2.setOnClickListener(this);

this.tab3.setOnClickListener(this);

this.tab4.setOnClickListener(this);

fm = super.getFragmentManager();

ft = fm.beginTransaction();

ft.replace(R.id.content,new Fragment1());

ft.commit();

}

@Override

public void onClick(View view) {

ft = fm.beginTransaction();

switch (view.getId()) {

case R.id.tab1:

ft.replace(R.id.content,new Fragment1());

break;

case R.id.tab2:

ft.replace(R.id.content,new Fragment2());

break;

case R.id.tab3:

ft.replace(R.id.content,new Fragment3());

break;

case R.id.tab4:

ft.replace(R.id.content,new Fragment4());

break;

}

ft.commit();

}

 

}

 

4)分别建立四个实现了Fragment类的子类,用于加载标签内容显示的页面:

Fragment1.java

package zjh.android.fragmenttab;

 

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

 

public class Fragment1 extends Fragment {

 

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment1,null);

}

  

}

 

Fragment2.java

package zjh.android.fragmenttab;

 

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

 

public class Fragment2 extends Fragment {

 

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment2,null);

}

  

}

 

Fragment3.java

package zjh.android.fragmenttab;

 

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

 

public class Fragment3 extends Fragment {

 

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment3,null);

}

  

}

 

Fragment4.java

package zjh.android.fragmenttab;

 

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

 

public class Fragment4 extends Fragment {

 

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment4,null);

}

  

}

 

此时,Fragment的标签页效果就实现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 中使用 Fragment 制作 Dialog,可以按照以下步骤操作: 1. 创建一个继承自 DialogFragmentFragment 类。 2. 实现 onCreateView 方法,该方法会返回一个 View 对象,用于显示 Dialog 的内容。 3. 在 onCreateDialog 方法中创建一个 AlertDialog 对象,并设置相关属性(例如标题、按钮等)。 4. 在 onStart 方法中调用 getDialog().getWindow().setLayout() 方法,设置 Dialog 的宽度和高度。 5. 在需要显示 Dialog 的地方,创建该 Fragment 对象并调用 show() 方法即可。 以下是一个示例代码: ``` public class MyDialogFragment extends DialogFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_layout, container, false); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Dialog Title") .setMessage("Dialog Message") .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // User clicked OK button } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // User cancelled the dialog } }); return builder.create(); } @Override public void onStart() { super.onStart(); getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); } } ``` 在需要显示 Dialog 的地方,可以这样调用: ``` MyDialogFragment dialog = new MyDialogFragment(); dialog.show(getSupportFragmentManager(), "MyDialogFragment"); ``` 注意,第二个参数是一个 tag,用于标识该 DialogFragment,可以在需要时使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值