android锁屏为啥用layout实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android锁屏为啥用layout实现?相关的知识,希望对你有一定的参考价值。
比如pin码和锁屏界面,都是使用layout,直接添加在当前界面上面的,为什么不做成一个Activity,能解释的最好两个都解释下,没什么分,学术性的交流下,希望大家多给意见,相互讨论也可以。
参考技术A layout是布局完成锁屏界面的各个控件的排列,也就是轮廓,内容。
activity是
把pin码及锁屏界面的相关函数,调用,在这个类中实现,然后setContentView()中调用上面定义的layout。
两个是相辅相成的,都要使用,谢谢~追问
锁屏界面没有Activity呀,源代码里面只定义一个layout,然后最核心的调用只有一个Policy.java,然后后面直接addView(),就直接添加的屏幕上面了。你说的这个应该只是类似于go锁屏这样的,把锁屏做成了一个Activity。
参考技术B 可以作成Activity的。华为的机器的锁屏都已经改成了Activity。追问那现在想弄明白,当时android写的时候为什么要把他弄成个layout,这个也应该有他的优势萨,除了显示快点?
本回答被提问者采纳为啥 android 中的 MyTextView 不对齐? [复制]
【中文标题】为啥 android 中的 MyTextView 不对齐? [复制]【英文标题】:why MyTextView in android isn't aligned to right? [duplicate]为什么 android 中的 MyTextView 不对齐? [复制] 【发布时间】:2013-11-23 04:35:10 【问题描述】:<LinearLayout
android:id="@+id/tipTitleLayout"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="2dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<com.me.view.text.MyTextView
android:id="@+id/tipTitleText"
style="@style/popupTitle"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_gravity="left"
android:layout_marginLeft="5dp"
android:layout_marginRight="38dp"
android:layout_marginTop="10dp"
android:gravity="left"
android:text="Tip" />
</LinearLayout>
但是当 ltrMode 开启时,我的代码不会改变重力。
我想以编程方式更改它。
怎么来的?
private void setUpforRTL()
if (AppService.getNativeManager().getLanguageRtl())
TextView addText2 = ((TextView)findViewById(R.id.tipText));
addText2.setGravity(Gravity.RIGHT);
TextView title = ((TextView)findViewById(R.id.tipTitleText));
title.setGravity(Gravity.RIGHT);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)title.getLayoutParams();
params.gravity = Gravity.RIGHT;
title.setLayoutParams(params); //causes layout update
【问题讨论】:
不,另一个是准确的。我更改了 xml 和问题太多次。我将另一个标记为关闭。 您是否尝试过将父级更改为RelativeLayout。 【参考方案1】:更新布局参数后,你应该在周围视图上调用requestLayout
。
【讨论】:
【参考方案2】:试试这个
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tipTitleLayout"
android:layout_
android:layout_
android:gravity="right|center_vertical"
android:padding="10dp"
android:orientation="horizontal" >
<com.me.view.text.MyTextView
android:id="@+id/tipTitleText"
style="@style/popupTitle"
android:layout_
android:layout_
android:text="Tip" />
</LinearLayout>
【讨论】:
你能解释一下吗?我希望它仅在 rtlmode 开启时为 rtl。 它是否有效?【参考方案3】:将标题声明更改为 LinearLayout,因为您在 xml 中将其定义为 LL。
【讨论】:
在哪里?没看懂 为什么是-1? TextView 标题 = ((TextView)findViewById(R.id.tipTitleText)); title.setGravity(Gravity.RIGHT); 还要注意你的 layout.xml。看起来你对重力/layout_gravity 做了很多tipTitleText
不是线性布局。你在哪里看到的?
我的错,抱歉,看到的是tipTitleLayout 而不是tipTitleText。尝试减少 layout/layout_gravity 和 margin 设置。尝试使用没有 LinearLayout 的 Textview。这就是我会尝试的。以上是关于android锁屏为啥用layout实现?的主要内容,如果未能解决你的问题,请参考以下文章