Stavo lavorando al mio vecchio ShareAction
sul mio ActionBar
e funzionava da quando ho aggiornato i miei pacchetti su SDK Manager
. Ho visto this doc da Google che dice,Dimensione dell'elemento icona ShareAction su ActionBar con ShareActionProvider-v7
Per aggiungere una "quota" azione alla vostra attività, mettere un
ShareActionProvider
in risorsa menù del bar app. Per esempio:
E ho aggiunto la stessa senza l'aggiunta di alcun Icons
:
<item android:id="@+id/action_share"
android:title="@string/share"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
usavo:
app:actionProviderClass="Mypackagename.ShareActionProvider"
Con una consuetudine ShareActionProvider
con il seguente code.you può vederlo here.
Ho visto un trucco o un trucco per farlo (con ShareActionProvider
-v4) e tutto è andato bene da quando ho deciso di utilizzare android.support.v7.widget.ShareActionProvider
.
Quindi, ecco il mio codice attualmente:
<item
android:id="@+id/shareac"
android:title="@string/share"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
app:showAsAction="always" />
non ho usato il Icon
perché here il dottore dice,
Non è necessario specificare un'icona , dal momento che il widget
ShareActionProvider
si prende cura del proprio aspetto e comportamento. Tuttavia, è necessario specificare con un titolo: android, nel caso in cui l'azione finisca nello nel menu di overflow.
E qui è quello che ho fatto finora:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main_details, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.shareac);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
Bundle extra = getIntent().getExtras();
String title = extra.getString("title");
Bundle extraurl = getIntent().getExtras();
String url = extraurl.getString("url");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Check this new project from something : " + title + url);
shareIntent.setType("text/plain");
mShareActionProvider.setShareIntent(shareIntent);
return true;
}
Quindi, ecco quello che vedo in questo momento in Android Studio 1.5.1 è,
E se esegui e compili l'app:
Come si può vedere, la dimensione di ShareAction
è troppo. (Sta violando la linea guida MaterialDesign
immagino).
ho dimenticato di dire, ho già provato android:icon="@mipmap/ic_share"
quale esse sono state lavorando con il mio precedente metodo/trucco.Ma, controllare questo Anteprima da AndroidStudio
:
E qui viene dopo compilato:
nulla è cambiato!
Quindi, la mia domanda: è un bug o cosa sto sbagliando qui?
Intent.createChooser
non ha funzionato anche: da: https://stackoverflow.com/a/34797718/4409113
Edit:
La parte più interessante, ho appena visto lo stesso design e le stesse resutls da Google sul seguente corso e su quella app, che hanno chiamato SunShine app:
corso:
https://www.udacity.com//course/viewer#!/c-ud855/l-3961788738/m-4294896397
Hai provato a utilizzare solo un'icona? Se questo corregge la dimensione, sarà più efficiente in fase di esecuzione rispetto a ridimensionare l'icona corrente. –
Ho appena aggiornato la domanda. Ho dimenticato di dirlo. Ma i documenti sono sbagliati? guarda il ** Non è necessario specificare un'icona ** – Mohsen
Non è necessario, ma se stai cercando di raggiungere la dimensione dell'icona la tua migliore scommessa è provare un'icona e vedere se questo risolve il problema . Potrebbe utilizzare le icone di Holo più delle icone del design. Prova ad aggiungere un'icona e vedere se funziona. –