【发布时间】:2012-06-25 14:38:56
【问题描述】:
AOSP 4.0.4 中的 expand_status_bar 布局有一个 TextView,在 XML 中看起来像这样
<com.android.systemui.statusbar.policy.DateView
android:id="@+id/date"
android:textAppearance="@style/TextAppearance.StatusBar.Date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:singleLine="true"
android:gravity="center"
android:visibility="visible" />
由“frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java”生成
它被“frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java”夸大了,如下所示:
ExpandedView expanded = (ExpandedView) View.inflate(context, R.layout.status_bar_expanded, null);
// stuff here
mDateView = (DateView) expanded.findViewById(R.id.date);
我想通过另一个类设置它的可见性,我已经尝试了一些我在这里读到的东西,但都没有运气。我尝试的最后一件事是,在我的班级(也是 systemui 的一部分)中添加以下内容:
TextView mDateView = (TextView) findViewById(R.id.date);
mDateView.setVisibility(View.GONE);
但是,在我的班级中,mDateView 为空。有什么我想念的吗?我一直在寻找几个小时并在这里和那里尝试一些东西,但没有任何效果。我拥有中级 Java 技能,但我仍在努力拥抱来自 20 年过程语言的 OOP 事物。提前致谢。
我将 mDateView 的定义更改为如下所示:
private DateView mDateView;
DateView mDateView = (DateView) findViewById(R.id.date);
但我仍然将 mDateView 设为 null :(
【问题讨论】:
-
DateView 类是否扩展了 ExpandedView?
-
您好,我误解了您的问题,解决方案是在您夸大视图的类中添加方法。
-
一种设置视图不可见的方法。
-
Dheeresh:在 DateView.java 我有“public final class DateView extends TextView {”,在 PhoneStatusBar.java 我有“ExpandedView expand = (ExpandedView) View.inflate(context, R.layout.status_bar_expanded , 空"
-
我试过 iNan 但我仍然得到 mDateView 为空。让我找到源的链接。也许我把它放在了错误的位置。