Изменение видимости определенного относительного макета во время выполнения для проекта Android в Eclipse - PullRequest
1 голос
/ 24 октября 2011

У меня есть два файла активности, которые в настоящее время обращаются к двум разным XML-файлам, чтобы перейти от одного представления к другому, чтобы позже я мог добавить отдельные интерфейсы.Однако взгляды меняются не так быстро, как хотелось бы, и переключение заметно медленное.Я решил, что это может быть более плавный переход, чтобы просто использовать относительные макеты и изменить видимость одного во время выполнения, чтобы вызвать другой пользовательский интерфейс.

Однако, несмотря на использование нескольких примеров, мне еще предстоит создать более плавный переход.Моим триггером будет код, который я использую для переключения между действиями с помощью кнопки (хотя это не будет отображаться в текущем состоянии проекта, если вы запустите его на Android).

Версия Android - 2.2, и я пытаюсь изменить видимость относительного макета на «НЕВИДИМ», используя код Java для действия «Страница1».Я просмотрел несколько примеров, однако ни один из них не был достаточно полным, чтобы дать мне информацию, необходимую для выполнения этой работы.Я планирую использовать эту функцию во всех проектах, которые я делаю для Android, и я думаю, что она будет полезна другим разработчикам, поскольку она помогает с презентацией.

Я разместил свой проект по следующему адресу, чтобы убедиться, чточто ни один код не пропущен, и ситуация совершенно ясна:

https://sites.google.com/site/elynxus102/projectandroid.zip?attredirects=0&d=1

Будет сказано «Страница не найдена».Тем не менее, на сайте есть ссылка, на которой написано projectandroid.zip

Вероятно, я также должен упомянуть, что я использую Eclipse 1.41 и следующие плагины:

Android DDMS 14.0.0.v201110171935-205994

Инструменты разработки для Android 14.0.0.v201110171935-205994

Средство просмотра иерархии Android 14.0.0.v201110171935-205994

Android Traceview 14.0.0.v201110171935-205994

Google App Engine Java SDK 1.5.5 1.5.5.r37v201110112027

Плагин Google для Eclipse 3.7 2.4.2.relr37v201110112027

Google Web Toolkit SDK 2.4.0 2.4.0.relr37v201110112027

SWT Designer 1.1.0.r37x201109091152

VEX SDK (инкубирование) 1.0.0.201105031353

Vex XML Editor (инкубация) 1.0.0.201105031353

1 Ответ

0 голосов
/ 24 октября 2011

Вы не должны использовать Относительный макет для хранения двух макетов, используйте ViewSwitcher, именно для этого.

Если у вас есть два файла макета, что разумно, если вы используете редактор пользовательского интерфейса,чем в вашем onCreate ():

public class SwitcherActivity extends Activity implements View.OnClickListener{

   private ViewSwitcher viewSwitcher;
   private Button showSecondButton;
   private Button showFirstButton;

   @Override
   public void onCreate(Bundle savedInstanceState) {
      viewSwitcher = new ViewSwitcher(this);
      viewSwitcher.addView(getLayoutInflater().inflate(R.layout.first, null));
      viewSwitcher.addView(getLayoutInflater().inflate(R.layout.second, null));
      setContentView(viewSwitcher);

      showSecondButton = (Button) findViewById(R.id.showSecondButton);
      showSecondButton.setOnClickListener(this);
      showFirstButton = (Button) findViewById(R.id.showFirstButton);
      showFirstButton.setOnClickListener(this);
   }

   @Override
   public void onClick(View v) {
      if ((v.getId() == R.id.showFirstButton)&&(viewSwitcher.getDisplayedChild()==1)) {
         viewSwitcher.showPrevious();
      } else if ((v.getId() == R.id.showSecondButton)&&(viewSwitcher.getDisplayedChild()==0)) {
         viewSwitcher.showNext();
      }
   }
}

Таким образом, вы можете переключаться между представлениями нажатием кнопок «Предыдущая / Следующая», которые следует включить в макет ваших страниц.Конечно, это только пример, у вас могут быть другие события, инициирующие изменение страницы, такие как получение результата от сервера, жесты, тайм-аут и т. Д. *

...