如何LayoutParams
以Fragment
编程方式设置?
实际上:我想Fragments
以LinearLayout
编程方式添加两个,我需要android:layout_weight
为它们设置。我是新手Fragment
。Fragments
我不知道将两个添加到一个中是否是一个好方法Layout
对不起。我的英语不是很好。
如何LayoutParams
以Fragment
编程方式设置?
实际上:我想Fragments
以LinearLayout
编程方式添加两个,我需要android:layout_weight
为它们设置。我是新手Fragment
。Fragments
我不知道将两个添加到一个中是否是一个好方法Layout
对不起。我的英语不是很好。
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT);
params.weight = 3.0f;
fragment.getView().setLayoutParams(params);
要在单个父 LinearLayout 中执行 2 个或更多片段的添加/替换/删除/附加/分离事务,我建议遵循以下基本步骤:
在您的 Fragment 类中,确保为您的 Fragment 指定 LayoutParams,将 layout_height(或水平方向的 layout_width)设置为“0”,同时将 layout_weight 设置为某个值:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_a, container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
FragmentManager manager = getActivity().getFragmentManager();
FragmentA fragmentA = (FragmentA) manager.findFragmentByTag("A");
fragmentA.getView().setLayoutParams(params);
}
在这里,我展示了单个 Fragment (FragmentA) 类的代码,但请确保在要使用的每个片段中都有相似的块。
现在,在拥有 LinearLayout 的 Activity 内部,这是一个在单个 LinearLayout 中添加此类片段的示例:
public void addA(View v) {
FragmentA fragmentA = new FragmentA();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.linearLayout, fragmentA, "A");
transaction.commit();
}
其中 linearLayout 将是我们活动布局中片段的父级。