L'interface utente Tablet non funziona sulla mia applicazione

Sto provando a creare un'applicazione che dispone di due differenti UI per tablet e telefoni e sto utilizzando frammenti per implementare questo. Ho creato due file xml separati per each layout di tablet e telefono e entrambi sono chiamati activity_main.xml, con il layout del telefono inserito nella cartella res / layout e il layout del tablet viene inserito nella cartella res / layout-sw600dp.

Tuttavia, quando cerco di eseguire la mia applicazione su un emulatore di Nexus 10 (Android Studio), viene automaticamente al layout di telefono predefinito. L'applicazione non si blocca o niente ma funziona solo nell'interface utente del telefono quando dovrebbe essere eseguita in UI della compressa. Non so quale fosse la fonte di questo errore e quindi qualsiasi aiuto sarebbe stato apprezzato.

  • Chiunque sa cosa significa questo errore per le tabs android?
  • Creare un'annotazione Java con il comportmento contestuale di IDE
  • Motivo della chiamata di arresto () su ExecutorService
  • Adatta l'image in webview
  • Crittografia dei file Android
  • Come fare spazio tra le barre in bargraph utilizzando Achartengine se each bar è diverso dal colore contando valori diversi
  • Ecco un aggiornamento, ho provato a rinominare la cartella a res / layout-large-mdpi ma non ho ancora trovato nessuna modifica. È ansible che potrebbe avere qualcosa a che fare con l'emulatore?

    Ecco il mio manifesto:

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.androidattack.www.sunshine" > <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.androidattack.www.sunshine.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.androidattack.www.sunshine.DetailActivity" android:label="@string/title_activity_detail" android:parentActivityName="com.androidattack.www.sunshine.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.androidattack.www.sunshine.MainActivity" /> </activity> <activity android:name="com.androidattack.www.sunshine.SettingsActivity" android:label="@string/title_activity_settings" android:parentActivityName="com.androidattack.www.sunshine.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.androidattack.www.sunshine.MainActivity" /> </activity> <provider android:authorities="com.androidattack.www.sunshine" android:name=".data.WeatherProvider" /> </application> </manifest> 

    layout sw600dp:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="?android:attr/dividerHorizontal" android:baselineAligned="false" tools:context="com.androidattack.www.sunshine.MainActivity"> <fragment android:layout_width="0dp" android:layout_height="fill_parent" android:name="com.androidattack.www.sunshine.ForecastFragment" android:id="@+id/fragment_forecast" android:layout_gravity="center_vertical" android:layout_weight="1" /> <FrameLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="2" android:id="@+id/weather_detail_container"> </FrameLayout> </LinearLayout> 

    layout normale:

     <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragment_forecast" android:name="com.androidattack.www.sunshine.ForecastFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" tools:context="com.androidattack.www.sunshine.ForecastFragment" tools:ignore="MergeRootFrame" tools:layout="@android:layout/list_content" /> 

    E infine questa è la mia class MainActivity.java:

     /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.androidattack.www.sunshine; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { private final String LOG_TAG = MainActivity.class.getSimpleName(); private boolean mTwoPane; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (findViewById(R.id.weather_detail_container) != null) { // Tablet view mTwoPane = true; // In two-pane mode, show the detail view by adding // or replacing the detail fragment using a // fragment transaction. if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .replace(R.id.weather_detail_container, new DetailFragment()) .commit(); } } else { // Phone View mTwoPane = false; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { startActivity(new Intent(this, SettingsActivity.class)); return true; } if (id == R.id.action_map) { openPreferredLocationInMap(); return true; } return super.onOptionsItemSelected(item); } private void openPreferredLocationInMap() { SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); String location = sharedPrefs.getString( getString(R.string.pref_location_key), getString(R.string.pref_location_default)); // Using the URI scheme for showing a location found on a map. This super-handy // intent can is detailed in the "Common Intents" page of Android's developer site: // http://developer.android.com/guide/components/intents-common.html#Maps Uri geoLocation = Uri.parse("geo:0,0?").buildUpon() .appendQueryParameter("q", location) .build(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(geoLocation); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } else { Log.d(LOG_TAG, "Couldn't call " + location + ", no receiving apps installed!"); } } } 

  • android layout: Questo tag e i suoi bambini possono essere sostituiti da uno <TextView /> e un composto disegnabile
  • Visualizzazione all'interno di ScrollView non è sufficiente
  • Come verificare il firebase ID token con PHP (JWT)?
  • E-mail di emissione (submit il collegamento ipertestuale nel corpo e-mail) android
  • Hai bisogno di submit un'image al blog Tumblr in android
  • Eseguire la richiesta http in parallelo con Retrofit 2
  • 4 Solutions collect form web for “L'interface utente Tablet non funziona sulla mia applicazione”

    Per me, il codice era corretto, ma il problema era con l'emulatore. Se si imposta l'emulatore con No skin , dovrebbe funzionare. Rimuovi quella pelle!

    Ha provato cosa succede con il layout quando si ruota il dispositivo? (ad esempio come progetto Sunshine è necessario creare sia layout-sw600dp-port e layout-sw600dp)

    layout-sw600dp è per tablet / emulatore da 7 pollici

    layout-sw720dp è per tablet da 10 pollici / emulatore

    L'utilizzo di layout-xhdpi functionrà per questo scenario specifico e un emulatore di tablet Nexus 7 o 10 per Nanodegree. Non ho mai potuto get il layout-sw600dp per caricare correttamente sul mio emulatore e invece ho attualmente mantenere Sunshine sia con un layout xhdpi che con un layout sw600dp con la stessa attività_main.xml.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.