Android如何反转LinearLayout中Fragment的添加顺序?
如何让动态添加的Fragment在LinearLayout中从下到上排列(新Fragment置于顶部)
我有一个包含LinearLayout的Fragment,目前通过以下代码动态添加Fragment:
getFragmentManager().beginTransaction().add(R.id.linear_layout, CheckTemplateFragment.newInstance(*params*)).commit();
当前Fragment会从上到下填充LinearLayout,但我需要反转这个顺序——新添加的Fragment要放在LinearLayout的顶部,实现从下到上排列的效果。
我知道可以通过addView(View, index)(index设为0时可实现顶部添加)来实现类似效果,但这个方法只适用于View,不能直接用在Fragment.newInstance()上。
我尝试在LinearLayout的布局XML中设置:
android:gravity="bottom"
但没有任何效果。我也了解到可以用View包裹Fragment后改用addView替代add的方式,但想知道有没有更简洁的实现方法?
以下是待添加的CheckTemplateFragment的布局XML:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/check_template" android:layout_width="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" tools:context=".CheckTemplateFragment"> <TextView android:id="@+id/btn_expand" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentEnd="true" android:foreground="@drawable/button_expand" /> <TextView android:id="@+id/check_date" android:layout_width="match_parent" android:layout_height="40dp" android:layout_alignParentStart="true" android:layout_toStartOf="@+id/btn_expand" /> <WebView android:id="@+id/check_extra" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/btn_expand" android:background="@color/teal_200"/> </RelativeLayout>
我选择使用Fragment是因为需要在其中处理按钮的点击事件,相关代码如下:
btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isExpanded = !isExpanded; if(isExpanded){ extra.setVisibility(View.VISIBLE); btn.startAnimation(anim_rot_cw); } else { extra.setVisibility(View.GONE); btn.startAnimation(anim_rot_ccw); } } });
内容的提问来源于stack exchange,提问作者Toasted_Donut
相关产品推荐
相关产品推荐

