gpt4 book ai didi

java - Android动态添加自定义组件到LinearLayout

转载 作者:行者123 更新时间:2023-11-29 21:37:22 27 4
gpt4 key购买 nike

我想在每次触摸按钮时在 LinearLayout 上添加一个自定义组件。

这是我的代码:

LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout root = (LinearLayout) findViewById(R.id.layout_cartelle_immagini);

View custom = vi.inflate(R.layout.custom_list_folder, null);
TextView textView = (TextView) custom.findViewById(R.id.label_pathFolder);
textView.setText(pathDirectory);

Spinner spinnerLevel = (Spinner) custom.findViewById(R.id.spinner_level);

try{

root.addView(custom);
}catch(Throwable e) {
Log.e("BurgerClub", "MEX: " + e.getMessage());
e.printStackTrace();
}

这样只添加了第一个自定义组件,为什么?

谢谢

编辑:我修改了我的代码:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
((ViewGroup) root).addView(custom, myCount, params);

这是我的自定义组件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_bottom"
android:layout_marginBottom="2dp"
android:paddingRight="20dp"
android:paddingLeft="20dp"
style="@style/Theme.BurgerClubStyle" >

<TextView
android:id="@+id/label_pathFolder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="center"
android:padding="20dp"
android:textSize="25sp"
style="@style/customText" />

<Spinner
android:id="@+id/spinner_level"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/btn_show_desc_img"
android:entries="@array/n_level_array"
android:padding="20dp"
android:prompt="@string/n_level_prompt"
android:textAlignment="3"
style="@style/customText" />

<ImageButton
android:id="@+id/btn_show_desc_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/btn_remove_folder"
android:layout_marginLeft="20dp"
android:layout_centerVertical="true"
android:background="@drawable/button_press"
android:contentDescription="@string/showDescImg"
android:src="@drawable/ic_desc" />

<ImageButton
android:id="@+id/btn_remove_folder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/button_press"
android:contentDescription="@string/showDescImg"
android:src="@drawable/ic_delete" />

</RelativeLayout>

我第一次按下按钮时,自定义组件被添加,但所有其他时间都没有。第一个自定义元素不会被覆盖,它是唯一可见的!

最佳答案

你的 layout_cartelle_immagini 声明在哪里?

可能是水平 LinearLayout,只需将方向设置为垂直,您的代码应该可以工作(考虑到添加自定义 View 的代码位于 onClickListener 中)。

关于java - Android动态添加自定义组件到LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107821/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com