2016-12-27 61 views
0

我有一個奇怪的事情發生,我不知道如何診斷。這是問題。ListView沒有數據在橫向打開應用程序時只有

什麼作品: 在縱向模式下打開應用程序,然後轉到橫向模式 - 兩種方向都正確填充。

什麼都行不通: 在橫向模式下打開應用程序 - 列表視圖爲空。但是,如果我將它轉換爲縱向填充,然後再轉回橫向,所有內容仍然正確填充。

這隻發生在第一次加載的應用程序上,並且只有在手機處於橫向模式時。如果應用程序打開,屏幕關閉,手機轉向風景,屏幕打開,則不會發生此行爲。

附加信息: 該應用正在使用ViewPager,並且它會打開第一部分片段,並在片段啓動之前填充列表視圖的數據。這對兩個方向都是正確的。

任何想法,我可以開始尋找診斷髮生了什麼?

- 編輯 我不確定什麼代碼會有用,但這裏有一些。我已經追蹤調試程序的流程,一切都正確填充,但沒有ListViews。被傳遞的列表被填充,數組適配器正確地生成視圖,一切都看起來正確,但屏幕上沒有任何內容出現。同樣,這只是在應用程序的初始加載時,並且僅在手機以風景開始時才啓動。快速翻轉到肖像和背部,一切都很好。

在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

最後,終於搞清楚發生了什麼事。它必須處理主佈局的寬度設置和第二層寬度設置。出於某種原因,在橫向和僅在初始應用程序啓動時,佈局寬度將無法正確顯示,並且會出現空白屏幕。

hoorrah!

相關問題