我正在以编程方式更新我的界面,以便在我的主菜单中显示ImageView。当ImageView是其父级内部的最后一个(LinearLayout)时,它可以正常工作。但是当它是Layout中的第一个项目或者是其他元素之间时它不起作用。
这是我的布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:gravity="right"
tools:context=".Actualidad" >
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitStart"
android:src="@drawable/main_bg" />
<ScrollView
android:id="@+id/iSV_Botones_drc"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:fillViewport="true" >
<LinearLayout
android:id="@+id/drc_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right"
android:gravity="right"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_main_actualidad"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:maxWidth="9dp"
android:src="@drawable/btnmenuiconactualidad" />
<ImageView
android:id="@+id/iv_main_discos_giras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="@dimen/menu_items_margin_top"
android:src="@drawable/btnmenuicondiscos"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_main_espectaculos"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="@dimen/menu_items_margin_top"
android:layout_weight="1"
android:src="@drawable/btnmenuiconeventos" />
</LinearLayout>
</ScrollView>
这是我设置可见ImageView(iv_main_discos_giras)的代码:
private Handler mResultHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mDiscosGiras.setVisibility(View.VISIBLE);
Log.d(getClass().getSimpleName(), "Item visible!!");
}
};
正确显示日志,并且mDiscosGiras已经初始化:
@InjectView(R.id.iv_main_discos_giras) ImageView mDiscosGiras; here
答案 0 :(得分:0)
我发现黑客工作得非常好。
我只是暂时隐藏该项目下面的所有项目。然后我将所有项目从上到下设置为可见。
注意:这也适用于LinearLayout中的android:animateLayoutChanges="true"
,动画效果很好。
private Handler mResultHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mEspectaculos.setVisibility(View.GONE);
mDiscosGiras.setVisibility(View.VISIBLE);
mEspectaculos.setVisibility(View.VISIBLE);
Log.i(getClass().getSimpleName(), "Ponemos el tema visible");
}
};