use*_*321 4 android android-fragments
是否可以使用LayoutParams动态添加片段?我有两个片段要放在RelativeLayout中:一个应该锁定在左边.另一个应该锁定在右边.
我在LinearLayout中对ListFragment使用了以下方法:
class CustomListFragment
extends ListFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
ViewGroup v = (ViewGroup) super.onCreateView(inflater, container,
savedInstanceState);
v.setLayoutParams(new LinearLayout.LayoutParams(0,
LinearLayout.LayoutParams.MATCH_PARENT, 1));
return v;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我在另一个答案中阅读了你的评论,我发现它与你所考虑的相似.
但请注意:框架可能会实例化您的片段.因此,该类必须是公共的,并且必须具有没有任何进一步参数的构造函数.
因此,任何用于自定义片段的setter方法都不起作用,因为不会为任何框架创建的实例调用它们.
您可以将它们分别包装在一个布局中(例如 )LinearLayout,然后设置其大小和位置。这个答案是关于类似的问题,并展示了如何使用FrameLayout带有自定义布局参数的 来包含Fragment.
请注意,fragment在 XML 中使用对象时,可以使用android:layout_*属性来控制其位置。就像这样:
<LinearLayout
android:orientation="horizontal"
... >
<fragment
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="1"
... />
<fragment
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="1"
... />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但是,我认为不可能以编程方式将布局参数应用于Fragments。ViewGroup毕竟他们不是。
| 归档时间: |
|
| 查看次数: |
7840 次 |
| 最近记录: |