|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
problema toolbar
hola compañeros estoy en un problema que no le encuentro salida mis actividades usan un toolbar con varias view en su interior que es este:
Código:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:popupTheme="@style/PopupMenu"
android:theme="@style/toolbarStyle">
<LinearLayout
android:id="@+id/toolbarcontent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/logo"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/ic_toolbar_normal" />
<TextView
android:id="@+id/texttitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginRight="15dp"
android:layout_marginTop="-10dp"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="20dp" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
Código:
public abstract class BaseActivity extends AppCompatActivity {
protected abstract int getLayoutResourceId();
protected abstract String getCustomTitle();
Toolbar toolbar;
TextView txttitle;
ImageView logo;
LinearLayout toolbarContent;
private static String TAG = BaseActivity.class.getSimpleName();
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
toolbar = (Toolbar) findViewById(R.id.toolbar);
txttitle = (TextView) findViewById(R.id.texttitle);
toolbarContent = (LinearLayout) findViewById(R.id.toolbarcontent);
logo = (ImageView) findViewById(R.id.logo);
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);
if (getCustomTitle() != null) {
txttitle.setText(getCustomTitle());
}
}
}
Mi idea es ocultar o mostrar los dos desde un método publico en BaseActivity pero con el textview puedo y con el imageview no por lo que comentaba. Alguna sugerencia? |
|
|
|
#2
|
||||
|
||||
|
2 cosas
1. Si lo que quieres es ponerle un icono a la Toolbar, no estoy seguro de si con lo siguiente te cargas la posibilidad de poner el up_indicator o el hamburger, pero puedes probar (para ahorrarte tener que meter un LinearLayout dentro) Código:
app:navigationIcon="@drawable/ic_action_bar" 2. Si no recuerdo mal, Toolbar ofrece el getCustomView(), prueba a hacer el findViewById sobre la View que devuelve (por probar) ![]() De todos modos, creo recordar que Google desaconseja el mostrar un icono personalizado (como se hacia en Holo) en la Toolbar
__________________
|
|
#3
|
||||
|
||||
|
Bueno el tema del icono es que queria que fuera personalizado y sobresaliera de la toolbar como muestra la imagen , por eso o use set logo ya que este la ajusta a la barra.
![]() he provado a acceder a los elementos con lo que decias: Código:
toolbarContent = (LinearLayout)getSupportActionBar().getCustomView().findViewById(R.id.toolbarcontent); No se que mas provar , se suponia que toolbar era como una view normal y se podia personalizar , pero al pasarle setSupportActionBar la cosa se complica , no se.. que se os ocurre mas para solucinar esto? |
|
#4
|
||||
|
||||
|
A las malas siempre puedes usar un FrameLayout y posicionarlo encima.
O un RelativeLayout y el icono a piñón, también. Nunca he tenido que modificar la Toolbar hasta ese nivel, la verdad EDIT: En este enlace de stack (que seguro que habrás mirado) comentan una forma, pero un comentario dice que no le funciona... http://stackoverflow.com/a/27859966
__________________
|