我正在尝试向Layout
添加LinaerLayout
。在第一次创建我的视图时,布局很好地添加,这意味着inflate和addView运行良好。但是当我单击一个按钮再次执行该过程并再次添加相同的视图时,它会起作用,但视图会添加到第一个视图之上。
碎片:
// onCreateView, I bind the container with his LinearLayout
mLnPricing = (ViewGroup) mRootView.findViewById(R.id.lnPricing);
//some stuff
private void createPriceBlock() {
mParent = LayoutInflater.from(getActivity()).inflate(
R.layout.block_pricing, null);
//binding some views
mIbAddPricing.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
createPriceBlock();
}
});
mLnPricing.addView(mParent,0);
}
block_pricing.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="wrap_content"
android:orientation="vertical" >
//some text fields
</LinearLayout>
main_lauyout.xml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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" >
//some controllers
<LinearLayout
android:id="@+id/lnPricing"
style="@style/addLabels.AppTheme"
android:layout_height="wrap_content"
android:layout_marginTop="20dp" />
</ScrollView>
我不知道我的代码有什么问题但是出于某种奇怪的原因,相同的代码正在处理另一个项目。
我的期望:在位置0添加新视图并向下移动其他视图。
我拥有的内容:视图将添加到预览之一,并在视图下方创建一个空白区域
答案 0 :(得分:1)
LinearLayout的默认方向是水平的。您尚未指定要添加新视图的LinearLayout的方向,因此旧视图将在屏幕外推向右侧。将android:orientation="vertical"
添加到lnPricing
LinearLayout标记。