Я видел несколько связанных вопросов по SO, но не могу решить свою проблему. Я создал отдельный макет для режима ПОРТРЕТ и ПЕЙЗАЖ.
Я изменил файл AndroidManifest.xml
для соответствующего изменения ориентации, но onConfigurationChanged()
не работает, когда я использую его в действии.
Теперь проблема находится в layout.addView(graphView, lp);
в onCreate()
. Я написал абсолютное жестко запрограммированное значение в классе GraphView
.
Таким образом, он отлично работает в режиме ПОРТРЕТА, но graphView размещается неправильно, когда я переключаюсь в режим LANDSCAPE.
Чтобы решить эту проблему, я создал класс GraphViewLand
, который закодирован исключительно для режима ЛАНДШАФТ. Но он не звонит из onConfigurationChanged()
.
Остальная часть макета идет отлично, так как я создал отдельный main.xml
файл для каждой ориентации. Но поскольку graphView
создается программно, он не размещается должным образом.
Я здесь что-то не так делаю?
Я только что прочитал это здесь:
Для любых типов изменений конфигурации, которые вы говорите, что вы обрабатываете там, вы получите вызов метода onConfigurationChanged (Configuration) вашего текущего действия вместо перезапуска. Однако, если изменение конфигурации касается чего-либо, что вы не обрабатываете, действие все равно будет перезапущено, и onConfigurationChanged (Configuration) не будет вызываться.
метод onCreate ()
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
RelativeLayout layout = (RelativeLayout) findViewById(R.id.MainLayout);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_TOP, btnindex.getId());
GraphView graphView = new GraphView(this, values, "CurrentGraph",
horlabels, verlabels);
layout.addView(graphView, lp);
}
onConfigurationChanged () метод
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
Log.v("LAND", "SCPAE");
}
}
Любая помощь нужна :)
.manifest
? Вы имеете в видуAndroidManifest.xml
? - person WarrenFaith   schedule 16.12.2011