在android中,有没有一种方法可以在点击将片段加载到容器中的按钮时提供xml的默认视图
我有一个框架布局,在点击按钮时加载片段,按钮都在片段内,但每当我导航到该片段时,它只显示这些按钮,当我点击它们时,只显示片段。我知道所有的东西都能正常工作,但我想知道是否有一种方法可以为该片段提供默认的xml视图,也就是说,在单击任何按钮之前,用户能够在该框架布局中查看xml? 附言:我对碎片还不熟悉,所以请冷静地详细回答。提前谢谢 java代码是:在android中,有没有一种方法可以在点击将片段加载到容器中的按钮时提供xml的默认视图,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我有一个框架布局,在点击按钮时加载片段,按钮都在片段内,但每当我导航到该片段时,它只显示这些按钮,当我点击它们时,只显示片段。我知道所有的东西都能正常工作,但我想知道是否有一种方法可以为该片段提供默认的xml视图,也就是说,在单击任何按钮之前,用户能够在该框架布局中查看xml? 附言:我对碎片还不熟悉,所以请冷静地详细回答。提前谢谢 java代码是: public class AddHearingFragment extends Fragment { Button b1,b2; @Overrid
public class AddHearingFragment extends Fragment {
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container != null) {
container.removeAllViews();
}
View view = inflater.inflate(R.layout.hearing,
container, false);
b1=(Button) view.findViewById(R.id.button8);
b2=(Button) view.findViewById(R.id.button7);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Myhearingfrag myf = new Myhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Myteamhearingfrag myf = new Myteamhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
}
});
return view;
}}
以及xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_marginTop="55dp" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:background="#FFBB00"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:text="MY HEARING"
android:id="@+id/button8"
android:layout_gravity="center_horizontal" />
<Button
android:background="#018AC1"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:text="MY TEAM HEARING"
android:id="@+id/button7"
android:layout_gravity="right"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<FrameLayout
android:id="@+id/contentFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_below="@+id/button8" />
</RelativeLayout>
如果您正在使用带有选项卡的viewpager,请在onCreate()方法中使用下面的行 寻呼机使用中:
public class Pager extends FragmentStatePagerAdapter {
//integer to count number of tabs
int tabCount;
//Constructor to the class
public Pager(FragmentManager fm, int tabCount) {
super(fm);
//Initializing tab count
this.tabCount= tabCount;
}
//Overriding method getItem
@Override
public Fragment getItem(int position) {
//Returning the current tabs
switch (position) {
case 0:
Tab1 tab1 = new Tab1(); // first fragment
return tab1;
case 1:
Tab2 tab2 = new Tab2(); // second fragment
return tab2;
case 2:
Tab3 tab3 = new Tab3(); // third fragment
return tab3;
default:
return null;
}
}
//Overriden method getCount to get the number of tabs
@Override
public int getCount() {
return tabCount;
}
}
请尝试以下链接:
如果您未使用viewpager,请使用以下链接:
根据你的密码。我刚刚修改了你的代码。检查这个
public class AddHearingFragment extends Fragment {
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container != null) {
container.removeAllViews();
}
View view = inflater.inflate(R.layout.hearing,
container, false);
b1=(Button) view.findViewById(R.id.button8);
b2=(Button) view.findViewById(R.id.button7);
Myhearingfrag myf = new Myhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Myhearingfrag myf = new Myhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Myteamhearingfrag myf = new Myteamhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
}
});
return view;
}}
如果您使用的是带有选项卡的viewpager,请在onCreate()方法中使用下一行 寻呼机使用中:
public class Pager extends FragmentStatePagerAdapter {
//integer to count number of tabs
int tabCount;
//Constructor to the class
public Pager(FragmentManager fm, int tabCount) {
super(fm);
//Initializing tab count
this.tabCount= tabCount;
}
//Overriding method getItem
@Override
public Fragment getItem(int position) {
//Returning the current tabs
switch (position) {
case 0:
Tab1 tab1 = new Tab1(); // first fragment
return tab1;
case 1:
Tab2 tab2 = new Tab2(); // second fragment
return tab2;
case 2:
Tab3 tab3 = new Tab3(); // third fragment
return tab3;
default:
return null;
}
}
//Overriden method getCount to get the number of tabs
@Override
public int getCount() {
return tabCount;
}
}
请尝试以下链接:
如果您未使用viewpager,请使用以下链接:
根据你的密码。我刚刚修改了你的代码。检查这个
public class AddHearingFragment extends Fragment {
Button b1,b2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container != null) {
container.removeAllViews();
}
View view = inflater.inflate(R.layout.hearing,
container, false);
b1=(Button) view.findViewById(R.id.button8);
b2=(Button) view.findViewById(R.id.button7);
Myhearingfrag myf = new Myhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Myhearingfrag myf = new Myhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Myteamhearingfrag myf = new Myteamhearingfrag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.contentFragment, myf);
transaction.commit();
}
});
return view;
}}
您可以将一个片段作为默认视图。。 步骤:
- 采用xml格式的框架布局并为其提供id
- 创建一个Fragment类,并在oncreate中膨胀它的视图
- 在Activity onCreate()中,创建片段类的实例
- 之后,创建Fragmentmanager和FragmentTransaction的实例
- 使用FragmentTransaction实例添加第一个片段并提交它
您可以将一个片段作为默认视图。。 步骤:
- 采用xml格式的框架布局并为其提供id
- 创建一个Fragment类,并在oncreate中膨胀它的视图
- 在Activity onCreate()中,创建片段类的实例
- 之后,创建Fragmentmanager和FragmentTransaction的实例
- 使用FragmentTransaction实例添加第一个片段并提交它
我只是在框架布局中使用了两个按钮,因此请建议我如何在用户单击这两个按钮之前添加xml视图作为默认值,然后在clickMY Hearning和MY TEAM Hearning都是按钮或选项卡上运行?在oncreate()中调用您的片段“主活动的名称。@Annie使用以下代码Myhearingfrag myf=new Myhearingfrag();FragmentTransaction=getFragmentManager().beginTransaction();事务.add(R.id.contentFragment,myf);commit();在这些线下视图=充气机。充气(R.布局。听力,容器,错误);b1=(按钮)视图.findViewById(R.id.button8);b2=(按钮)视图.findViewById(R.id.button7);我的主要活动是一个导航抽屉,那么在那个抽屉中使用这段代码可以吗?我只是使用两个框架布局的按钮,因此,请建议我如何在用户单击这两个按钮之前将xml视图添加为默认视图,然后在“单击我的听力”和“我的团队听力”按钮或选项卡上进行操作?在MainActivity的oncreate()中调用您的片段。@Annie使用以下代码Myhearingfrag myf=new Myhearingfrag();FragmentTransaction=getFragmentManager().beginTransaction();事务.add(R.id.contentFragment,myf);commit();在这些线下视图=充气机。充气(R.布局。听力,容器,错误);b1=(按钮)视图.findViewById(R.id.button8);b2=(按钮)视图.findViewById(R.id.button7);我的主要活动是一个导航抽屉,所以在那个抽屉中使用这段代码可以吗?试试我的答案@anniety My answer@anniew我在哪里添加这段代码??如我的问题所示,是新片段还是旧的主片段?您必须使用活动布局中的两个按钮创建布局。i、 e我的听证会和我的团队听证会。在您的活动onCreate()中你需要添加上面的行。然后当你打开屏幕时,你的“我的听力片段”就会显示。单击“我的团队治疗”按钮时,只需在相应按钮的onclickListner中添加相同的行。但是,除了添加之外,你还需要添加替换。谢谢,这是一个很好的方法,但我已经找到了另一个答案,我在哪里添加此代码??如我的问题所示,是新片段还是旧的主片段?您必须使用活动布局中的两个按钮创建布局。i、 e我的听证会和我的团队听证会。在您的活动onCreate()中,您需要添加上述行。然后,当您打开该屏幕时,我的听力片段就会显示。单击“我的团队治疗”按钮时,只需在相应按钮的onclickListner中添加相同的行。但是,除了添加之外,您还需要添加替换。谢谢,这是一个不错的方法,但我已经找到了另一个答案