Articles of 布局

从保存的状态还原视图层次不会还原以编程方式添加的视图

我试图保存和恢复由一个button表组成的视图层次结构。 表中所需的表行和button的数量直到运行时才是已知的,并且在我的Activity的onCreate(Bundle)方法中以编程方式添加到膨胀的xml布局中。 我的问题是:最终的表可以保存和恢复使用Android的默认视图保存/恢复实施? 下面是我目前尝试的一个例子。 在初始运行时,表格按预期构build。 当活动被破坏时(通过旋转设备),重build视图只显示一个没有子项的空TableLayout 。 setContentView(int)引用的xml文件还包括将button添加到的空TableLayout 。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Setup this activity's view. setContentView(R.layout.game_board); TableLayout table = (TableLayout) findViewById(R.id.table); // If this is the first time building this view, programmatically // add table rows and buttons. if (savedInstanceState == null) { int gridSize = 5; // Create the […]

双通道UI布局:为什么?

我注意到Android,WPF和Silverlight都遵循两遍布局模式。 有一个recursion的Measure()方法被调用来调整元素的大小,可能多次。 然后调用一个recursion的Layout / Arrange()方法,该方法将子控件在父控件中的确切位置进行布局,并设置控件的最终大小。 我的问题是:为什么这会分成两个阶段,特别是对于某些types的控件,Measure()不能真正计算出控件的实际大小,而实际上并没有布置子项的位置? 是否有某种types的布局less数人的情况下,由此可能? 我正在尝试创build自己的UI工具包,而且我正在倾向于一个一次通过Layout()模式,但我想确信这是否明智。 感谢您阅读此:) 肖恩

Android本地化问题:在切换语言环境时,并非布局中的所有项目都能正确更新

这里的问题是:当我有一个活动在后台运行,我切换语言环境,我切换回应用程序,一切都更新…除了有一个“android:id”属性设置checkbox和单选button。 如果checkbox和单选button没有“android:id”属性,那么它们会更新OK。 其他字段没有这个问题,不pipe他们是否有“android:id”属性。 什么是最好的方式来确保我的跑步活动中的每一个地方被更改时更新? 重现步骤: 1)在Eclipse中创build一个“Hello,Android”项目。 2)在主布局中,定义两个checkbox: <CheckBox android:text="@string/checkbox" android:id="@+id/CheckBox01" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox> <CheckBox android:text="@string/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox> 3)创build两个strings.xml:一个在“values”下,一个在“values-es”下面。 4)在“values”下创build以下string: <string name="checkbox">English</string> 5)在“values-es”下创build以下string <string name="checkbox">español</string> 6)将设备设置为“英文” 7)在仿真器或任何设备上运行应用程序(在HTC G1上testing)。 8)观察。 这两个checkbox都是“英文”。 9)按“Home”返回菜单,让应用程序在后台运行。 10)转到设置。 将语言切换到“español” 11)按住“Home”。 返回到应用程序。 预期结果: 两个checkbox都会显示“español” 实际结果: 首先checkbox显示“英文” 第二个checkbox显示“español” 看起来,具有“android:id”属性的checkbox没有更新,因为它应该。 没有“android:id”属性的checkbox按预期工作。

Android:如何调整button大小?

我在我的应用程序中使用了几个button,但layout_width / height“wrap_content”和“fill_parent”看起来很奇怪。 前者是小而后者太大 – 都看起来很奇怪,而前者不容易用手指击中。 我应该如何调整button大小? 它是典型的定义他们的大小浸渍? 或者我应该使用填充“fill_parent”? button在我的应用程序看起来很奇怪,而其他的则不然。

带有RemoteViews的Android自定义通知布局

我试图创build一个自定义通知我的Android应用程序使用这个职位 ,我偶然发现了一个问题,我试图解决过去2个小时。 只有我的布局的imageview显示,我无法弄清楚如何使它像预期的那样工作。 我的代码: package be.ac.ucl.lfsab1509.cumulus.services; import android.app.Notification; import android.app.PendingIntent; import android.content.Intent; import android.support.v4.app.NotificationCompat; import android.support.v4.app.TaskStackBuilder; import android.widget.RemoteViews; import be.ac.ucl.lfsab1509.cumulus.R; import be.ac.ucl.lfsab1509.cumulus.activities.MainActivity; import be.ac.ucl.lfsab1509.cumulus.entities.Song; public class CumulusNotification { private CumulusService mCtx; private CumulusMediaPlayer mPlayer; private Notification mNotification; private NotificationCompat.Builder mBuilder; private RemoteViews mContentView; public CumulusNotification(CumulusService ctx, CumulusMediaPlayer player){ mCtx = ctx; mPlayer = player; mBuilder […]

getmeasuredheight()和getmeasuredwidth()在View.measure()之后返回0

在使用view.measure()测量具有常量维度的View之后, getMeasuredHeight()和getMeasureWidth()返回0。 layout_view.xml ,这是膨胀创build视图的布局 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp"> </FrameLayout> 测量尺寸的function public void measureView(Context context){ LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.layout_view,null,false); view.measure( View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); Log.d(TAG,"Error width : " + view.getMeasuredWidth()); Log.d(TAG,"Error heeght : " + view.getMeasuredHeight()); }

如何将一个片段添加到ViewPager? addView崩溃我的应用程序

我使用Android启动的默认Swipe Tab Fragment代码,当您启动一个新的Android应用程序。 我已经想出了如何修改我的数据和使用标签,但我还没有想出如何添加一个简单的片段,已经有了。 我想添加一个信息栏在标签的顶部或正下方。 我确定这很简单,我只是不知道如何大声笑。 我通过例子来学习。 我已经尝试添加viewpager视图,但我的应用程序崩溃,我相信我完全做错了。 在我的MainActivity中:… protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Set up the action bar. final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager()); // Set up the ViewPager with the sections adapter. mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mSectionsPagerAdapter); SubBarFragment infobar = new SubBarFragment(); mViewPager.addView(infobar.getView()); …..[extra code […]

Android:自定义标题栏

我有一个自定义标题栏 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.activities); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); 哪个工作基本上好。 问题是,直到上面的代码被称为默认标题栏显示。 我根本不想要一个标题栏,换句话说,在我出现之前,没有标题出现。 将这添加到清单: <application android:theme="@android:style/Theme.NoTitleBar"> 导致力量closures。 我的清单看起来像这样 <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/My_Theme"> 在我需要my_Theme的地方,因为它设置了背景颜色,在我的客户主题中设置背景颜色导致在我的彩色背景周围出现灰色区域。 所以,即使没有力量closures,我不知道如果没有标题将帮助。 任何想法? 谢谢。

在android中创build底部工具栏的最佳方法。

寻找一个很好的方法来实现类似的工具栏。 我应该使用图像button?

水平“标签”是在视图之间滚动

我有兴趣创build一个水平滚动视图,“捕捉”到所查看的项目,所以一次只显示一个项目。 用户可以左右拖动,看到上一个/下一个视图,如果速度足够,可以切换到上一个/下一个视图。 这种互动与Nexus One自带的“标签”之间的新天气/新闻小部件完全相同。 有没有现有的视图小部件这样做? 更新:发现新闻/天气部件(GenieWidget)的副本,他们似乎已经实现了他们自己的部件来完成这个他们称为com.google.android.apps.genie.geniewidget.ui.FlingableLinearLayout这是他们自己的一部分自定义com.google.android.apps.genie.geniewidget.ui.TabView 。 由于这个来源不可用,这看起来不太有希望的方向。