rafaxplayer
23/07/15, 19:13:04
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:
<?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>
Bien la activada base que uso para las demas seria asi:
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());
}
}
}
Dentro del tolbar hay dos views un texview y un image view , mi duda que me tiene desconcertado es como que la referencia a textview (textittle) funciona correctamente y puedo usar su metodologia sin problemas y sin embrago el ImageView (logo) me da null siempre, cuando los dos view están en el dentro del mismo contenedor?
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?
<?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>
Bien la activada base que uso para las demas seria asi:
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());
}
}
}
Dentro del tolbar hay dos views un texview y un image view , mi duda que me tiene desconcertado es como que la referencia a textview (textittle) funciona correctamente y puedo usar su metodologia sin problemas y sin embrago el ImageView (logo) me da null siempre, cuando los dos view están en el dentro del mismo contenedor?
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?