Autore Topic: action bar non funzionante :/  (Letto 363 volte)

Offline aeroxr1

  • Utente junior
  • **
  • Post: 76
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    window 8.1
action bar non funzionante :/
« il: 09 Giugno 2014, 20:44:38 CEST »
0
Ciao,
ho un problema con l'action bar della mia "applicazione".
In pratica nell'activity in cui è presente un animazione Unity3d compare in maniera corretta l'action bar, ma i tasti non sono selezionabili, come si può vedere dai due screenshot seguenti :

Activity main in cui l'action bar funziona correttamente :



Activity contenente l'animazione di unity3d in cui l'actionbar non è cliccabile :




ecco il manifest della mia app :

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.rabidgremlin.tut.redcube"
   android:installLocation="auto"
   
   android:versionCode="1"
   android:versionName="1.0" >
 <!--  android:theme="@android:style/Theme.NoTitleBar"-->
    <supports-screens
       android:anyDensity="true"
       android:largeScreens="true"
       android:normalScreens="true"
       android:smallScreens="true"
       android:xlargeScreens="true" />

    <application
       android:icon="@drawable/app_icon"
       android:label="@string/app_name"
       android:theme="@android:style/Theme.Holo.Light"  >
         
        <activity
           android:name="com.rabidgremlin.tut.redcube.UnityPlayerNativeActivity"
           android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"
           android:label="@string/app_name"
         
           android:screenOrientation="portrait" >
  <!--android:launchMode="singleTask"-->
            <meta-data
               android:name="unityplayer.UnityActivity"
               android:value="true" />
            <meta-data
               android:name="unityplayer.ForwardNativeEventsToDalvik"
               android:value="false" />
        </activity>
        <activity
           android:name="com.rabidgremlin.tut.redcube.MainActivity"
           android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-sdk
       android:minSdkVersion="17"
       android:targetSdkVersion="19" />

    <uses-feature android:glEsVersion="0x00020000" />

</manifest>

e il file java della seconda activity contenente l'animazione di Unity3d

Codice (Java): [Seleziona]
package com.rabidgremlin.tut.redcube;

import android.app.ActionBar.LayoutParams;
import android.app.NativeActivity;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;

import com.unity3d.player.UnityPlayer;

public class UnityPlayerNativeActivity extends NativeActivity
{
        protected UnityPlayer mUnityPlayer;             // don't change the name of this variable; referenced from native code

        // Setup activity layout
        @Override protected void onCreate (Bundle savedInstanceState)
        {
                //requestWindowFeature(Window.FEATURE_NO_TITLE);
                super.onCreate(savedInstanceState);
                getWindow().takeSurface(null);
                //Theme_NoTitleBar_Fullscreen
                setTheme(android.R.style.Theme_Holo);
                getWindow().setFormat(PixelFormat.RGB_565);

                mUnityPlayer = new UnityPlayer(this);
                /*if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))
                        getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                               WindowManager.LayoutParams.FLAG_FULLSCREEN);
                */

                setContentView(mUnityPlayer);
                mUnityPlayer.requestFocus();
        }

        // Quit Unity
        @Override protected void onDestroy ()
        {
                mUnityPlayer.quit();
                super.onDestroy();
        }

        // Pause Unity
        @Override protected void onPause()
        {
                super.onPause();
                mUnityPlayer.pause();
        }
 

        // Resume Unity
        @Override protected void onResume()
        {
                super.onResume();
                mUnityPlayer.resume();
        }

        // This ensures the layout will be correct.
        @Override public void onConfigurationChanged(Configuration newConfig)
        {
                super.onConfigurationChanged(newConfig);
                mUnityPlayer.configurationChanged(newConfig);
        }

        // Notify Unity of the focus change.
        @Override public void onWindowFocusChanged(boolean hasFocus)
        {
                super.onWindowFocusChanged(hasFocus);
                mUnityPlayer.windowFocusChanged(hasFocus);
        }
        // proviamo ad abilitare l'action bar :
        @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) {
                        return true;
                }
                return super.onOptionsItemSelected(item);
        }
        // For some reason the multiple keyevent type is not supported by the ndk.
        // Force event injection by overriding dispatchKeyEvent().
        @Override public boolean dispatchKeyEvent(KeyEvent event)
        {
                if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
                        return mUnityPlayer.injectEvent(event);
                return super.dispatchKeyEvent(event);
        }

        // Pass any events not handled by (unfocused) views straight to UnityPlayer
        @Override public boolean onKeyUp(int keyCode, KeyEvent event)     { return mUnityPlayer.injectEvent(event); }
        @Override public boolean onKeyDown(int keyCode, KeyEvent event)   { return mUnityPlayer.injectEvent(event); }
        @Override public boolean onTouchEvent(MotionEvent event)          { return mUnityPlayer.injectEvent(event); }
        /*API12*/ public boolean onGenericMotionEvent(MotionEvent event)  { return mUnityPlayer.injectEvent(event); }
}
« Ultima modifica: 10 Giugno 2014, 10:06:27 CEST da aeroxr1 »