2016-12-27 8 views
0

私は診断方法がわからない奇妙なことが起こっています。ここに問題があります。ランドスケープでアプリを開くときにListViewデータが表示されない

効果: アプリをポートレートモードで開いてから横向きモードにする - 両方の向きが正しく設定されます。

機能しない: ランドスケープモードでアプリを開く - リストビューは空です。しかし、もし私がそれを人口に変えれば、それは人口に住みついてから、景色に戻ります。

これはアプリが最初に読み込まれたときにのみ、電話機が横向きになっている場合にのみ発生します。アプリが開いていて、画面がオフになっていて、電話がランドスケープになっていて、画面がオンになっている場合、この現象は発生しません。

追加情報: このアプリケーションでは、ViewPagerを使用しており、最初のセクションのフラグメントが開き、フラグメントが開始される前にリストビューのデータが読み込まれます。これは、両方の向きで正しく発生します。

私は何が起こっているかを診断するために探し始めることができる任意のアイデアですか?

- 編集 有用なコードはわかりませんが、ここにはいくつかあります。私は、プログラムの流れをデバッグしてトレースしましたが、すべてが正しく読み込まれますが、ListViewはありません。渡されたリストにデータが入力され、アレイアダプタがビューを正しく生成していますが、すべてが正しいように見えますが、画面に何も表示されません。再び、これはアプリの最初の読み込み時のみで、電話機はランドスケープとして開始されます。ポートレートとバックにすばやくフリップしても問題ありません。

MainActivityののonCreateマイナスページ変更リスナー

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.rootactivitylayout); 

     //create default and upgrade database 
     DBHelper db = new DBHelper(getApplicationContext()); 
     db.closeDB(); 

     ((ExtendedApp) this.getApplication()).initializeGlobals(); 
     PopulateUpgradeList(this); 
     PopulateShipList(this); 
     PopulateSquadronList(this); 
     PopulateObjectiveList(this); 

     // Create the adapter that will return a fragment for each of the three 
     // primary sections of the activity. 
     mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

     // Set up the ViewPager with the sections adapter. 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mSectionsPagerAdapter); 
     mViewPager.setOffscreenPageLimit(2); 

ページフラグメントのonCreateViewついに

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     isLoading = true; 
     thiscontext = container.getContext(); 

     //handle ships 
     //------------------------ 
     View view = inflater.inflate(R.layout.fragarmada, container, false); 
     ArrayList<Ship> tmpList = justShipTypes(); 

     ShipAdapt = new AA_Armada_Ships(thiscontext, tmpList); 
     ListView tmplv = (ListView) view.findViewById(R.id.lvAShipList); 

     tmplv.setAdapter(ShipAdapt); 
     tmplv.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      shipPopup((Ship) view.getTag()); 
      } 
     }); 

アレイアダプタのコード最後に

+1

私たちはTEH CODE – Blundell

+0

アイデアを必要としています:あなたが思うすべての場所にログを追加してください*コードが実行されているログを読んでください – Blundell

+0

私はあなたと同じ問題を抱えています。もともと[Wallison Francisco](https://stackoverflow.com/users/7658080/wallison-francisco) –

答えて

0

を、移入され最初のリストビューまで何が起こっていたのか考え出した。それは、メインレイアウトの幅設定と第2層幅設定と関係していました。何らかの理由で、ランドスケープで、最初のアプリの起動時にのみ、レイアウトの幅が正しくレイヤー化されず、空白の画面が表示されます。

ホーラー!

関連する問題