我尝试删除线性布局的所有子视图但没有删除任何东西,奇怪的是相同的代码在另一个应用程序中工作.以下是每当选择选项卡时填充choiceHolder的方法的示例代码(我删除所有视图并标记所选视图并根据它填充:
- /** a method to fill the upper bar where we choose the {@link CategoriesMyBox}
- * @param category
- */
- private void fillNavigationBar( CategoriesGetter category) {
- TextView categoryTxt = new TextView(getActivity());
- // categoryTxt.setAllCaps(true);
- LinearLayout.LayoutParams txtParams;
- if (category.isSelected() /*|| (category.getId_categorie()==0 && allselected)*/) {
- txtParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
- txtParams.gravity = Gravity.CENTER;
- categoryTxt.setGravity(Gravity.CENTER);
- categoryTxt.setTextSize(categoryTxt.getTextSize());
- txtParams.setMargins(10,10,0);
- categoryTxt.setPadding(5,5,5);
- if (category.getId_categorie() == 0) {
- categoryTxt.setText(getResources().getString(R.string.all_Boxs));
- }else {
- categoryTxt.setText(category.getName_categorie());
- }
- categoryTxt.setTextColor(Color.GREEN);
- categoryTxt.setBackgroundDrawable(getResources().getDrawable(R.drawable.back_categories_selected));
- // categoryTxt.setBackgroundColor(Color.parseColor("#E3E8E6"));
- categoryTxt.setTag(category);
- }else {
- txtParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
- txtParams.setMargins(10,0);
- categoryTxt.setGravity(Gravity.CENTER);
- categoryTxt.setPadding(5,5);
- txtParams.gravity = Gravity.CENTER;
- if (category.getId_categorie() == 0) {
- categoryTxt.setText(getResources().getString(R.string.all_Boxs));
- }else {
- categoryTxt.setText((category.getName_categorie()));
- }
- categoryTxt.setTextColor(Color.GRAY);
- categoryTxt.setBackgroundDrawable(getResources().getDrawable(R.drawable.back_categories));
- // categoryTxt.setBackgroundColor(Color.parseColor("#777777"));
- categoryTxt.setTag(category);
- }
- choiceHolder.addView(categoryTxt,txtParams);
- categoryTxt.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- CategoriesGetter cat = (CategoriesGetter)v.getTag();
- id_cat = cat.getId_categorie();
- for (int i = 0; i < categories.size(); i++) {
- categories.get(i).setSelected(false);
- }
- cat.setSelected(true);
- // choiceHolder.removeAllViews();
- /*for(int i=0; i<((ViewGroup)choiceHolder).getChildCount(); ++i) {
- View nextChild = ((ViewGroup)choiceHolder).getChildAt(i);
- choiceHolder.removeView(nextChild);
- }*/
- while (((ViewGroup)choiceHolder).getChildCount() >0) {
- View nextChild = ((ViewGroup)choiceHolder).getChildAt(0);
- choiceHolder.removeView(nextChild);
- }
- // choiceHolder.removeAllViewsInLayout();
- for (int i = 0; i < categories.size(); i++) {
- fillNavigationBar(categories.get(i));
- }
- callbackCategory.selectCategory(cat.getId_categorie());
- }
- });
- }
choiceHolder是一个LinearLayout.
好吧我的所有应用程序的行为方式都相同,即使更新内部列表我仍然可以看到之前的列表.
解决方法
我发现这个问题的解决方案是从AndroidManifest中的活动中删除fullScreen主题标签,它是这样的:
- <application
- android:name="com.paperpad.myBox.ApplicationInit"
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name="com.paperpad.myBox.activities.SplashActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <Meta-data
- android:name="com.crashlytics.ApiKey"
- android:value="023e7fe8a4a93f93ffe7510201929d081b125313" />
- <activity
- android:name="com.paperpad.myBox.activities.BoxsMainActivity"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:label="@string/title_activity_Boxs_main"
- android:theme="@style/FullscreenTheme" >
- </activity>
- <activity
- android:name="com.paperpad.myBox.LoginActivity"
- android:label="@string/title_activity_login"
- android:windowSoftInputMode="adjustResize|stateVisible" >
- </activity>
- </application>
从活动BoxsMainActivityall中删除android:theme =“@ style / FullscreenTheme”.希望这有助于某人……