Макет: Фон заставки все еще отображается, когда появляется новый макет.

У меня проблема в макете. В моей деятельности сначала я показываю заставку, а после этого на основе некоторых условий мне нужно показывать разные макеты. Когда я показываю один макет, он выглядит прозрачным белым (например, заставка), а другой в порядке, потому что его цвет фона совпадает с этим. Когда я когда-либо нажимаю на прозрачный белый вид (текстовый вид), он выглядит нормально. То есть он действует как кнопка в смысле нажатия и отпускания разных видов.

Я попытался указать цвет фона, но проблема все еще существует. К сожалению, мне нужно указать белый цвет только для этого вида.

Может ли кто-нибудь помочь мне изменить это прозрачное белое изображение в моем новом макете?

это макет представления с проблемой фона

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/white"  
 >

<ScrollView 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_marginLeft="5dp"
 android:layout_marginRight="5dp"
 >
 <RelativeLayout 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
     >
   <TextView
     android:id="@+id/abc"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"

      />
     </RelativeLayout>   
 </ScrollView>

<RelativeLayout 
     android:id="@+id/button_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"

    android:paddingBottom="5dp"
    >

<Button 
    android:id="@+id/btn1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:text="@string/btn1"
    android:background="@drawable/btn1"


    />
 <Button 
    android:id="@+id/btn2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="@string/btn2"
    android:background="@drawable/btn2" 
   />

</RelativeLayout>

In code

oncreate(){
setcontentview(splashscreen)
setview()
}

void setview(){
if(condition1){
            setContentView(R.layout.a1);

}
else{
       setContentView(R.layout.a2);
}
}

person Sjk    schedule 22.03.2013    source источник
comment
Вы закончили работу с заставкой?   -  person Jibяaᴎ Khaᴎ    schedule 22.03.2013
comment
Вы опровергаете другую точку зрения? Почему бы не сделать другие представления невидимыми, а тот, который вы используете, видимым. Нужно больше мяса по этому вопросу.   -  person a54studio    schedule 22.03.2013
comment
@JibranKhan в заставке основного действия использует . мне нужно изменить представление в той же деятельности, а не в новой   -  person Sjk    schedule 22.03.2013
comment
@digiholic, как аннулировать представление?   -  person Sjk    schedule 22.03.2013
comment
Я предлагаю иметь отдельную активность для Splashscreen   -  person Jibяaᴎ Khaᴎ    schedule 22.03.2013
comment
Корчолис отвечает примерно так же, как я делаю свои заставки. Sjk, извините, когда я опубликовал исходный код, код не работал. Возможно, вы могли бы установить свой splashscreen.setVisibility(View.INVISIBLE) в зависимости от того, какой это вид. Я говорю о том, что, возможно, экран не удаляет старый вид, а просто рисует поверх него.   -  person a54studio    schedule 22.03.2013


Ответы (1)


Почему бы вам просто не перейти к другому занятию, когда всплеск закончится? Поставьте лайк этому. Просто ради SO я копирую код этой страницы сюда:

package com.itcuties.tutorial.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;


public class SplashActivity extends Activity {

   private static String TAG = SplashActivity.class.getName();
   private static long SLEEP_TIME = 5;    // Sleep for some time

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      this.requestWindowFeature(Window.FEATURE_NO_TITLE);    // Removes title bar
      this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);    // Removes notification bar

      setContentView(R.layout.splash);

      // Start timer and launch main activity
      IntentLauncher launcher = new IntentLauncher();
      launcher.start();
   }

   private class IntentLauncher extends Thread {
      @Override
      /**
       * Sleep for some time and than start new activity.
       */
      public void run() {
         try {
            // Sleeping
            Thread.sleep(SLEEP_TIME*1000);
         } catch (Exception e) {
            Log.e(TAG, e.getMessage());
         }

         // Start main activity
         Intent intent = new Intent(SplashActivity.this, MainActivity.class);
         SplashActivity.this.startActivity(intent);
         SplashActivity.this.finish();
      }
   }
}
person Sergi Juanola    schedule 22.03.2013