Articles of 布局

在Android中将尺寸存储在xml文件中

我正在尝试在我的android应用程序的所有视图中始终使用相同的维度(例如,20dp的左边距)。 如果我使用的是HTML,我只是简单地使用一个CSS文件,但是我不知道如何在Android上这样做。 有没有一种方法可以将这个值存储在res / values里面的xml文件中,然后在布局中使用它? 例如,我想像将它们存储在strings.xml中 <string name="app_wide_left_padding">20dp</string> 然后在layout.xml中使用以下文本 android:paddingLeft="@string/app_wide_left_padding" 但我不知道它会起作用。 我在正确的轨道上? 预先感谢您的答案。

显示键盘时,屏幕的布局向上移动

假设我有以下布局: http://img.androidcookie.com/android/2vchnih.png 当我点击底部的编辑文本,我得到这个: http://img.androidcookie.com/android/352lym9.png 正如你可以注意到,从顶部的图像上移,整个布局移动。 这是我的这个布局的XML: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF" > <LinearLayout android:id="@+id/header" android:layout_width="fill_parent" android:layout_height="75dp" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:isScrollContainer="true" android:background="@drawable/header" > </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/scrollauthentication" android:layout_below="@+id/header" android:background="#FFFFFF" android:fillViewport="true" > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:id="@+id/authenticationrelativelayout"> <TextView android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/header" android:layout_marginLeft="30dp" android:layout_marginTop="20dp" android:text="login" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lighter_orange" android:textSize="28dp" /> <TextView android:id="@+id/usernameTextView" […]

如何用RTL水平方向创buildandroid linearlayout

我想创build一个水平方向的线性布局 但我希望它把孩子放在右边,而不是像往常一样放在左边 我怎样才能做到这一点? 我知道如何使用relativeLayout来做到这一点,但我想练习linearLayout

Android:自动为xml中的所有ID创buildvariables

我注意到Android开发中最乏味的部分之一是布局devise,即使是布局构build器。 设置graphics后,布局,使布局元素的variables关联是非常繁琐的,如ImageButton myButton = (ImageButton)findViewById(R.id.myButton); 在较大的布局中,这些可能会很繁琐以追踪(回想元素的​​名称),然后以任何顺序添加更多variables的需要变得令人沮丧。 为了稍微缓解这个问题,如果我在XML中声明的所有ID自动与它们的正确variables相关联,并且所有这些数据types已经包含在该类中 有什么已经做到这一点? 例如,如果我写 <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/myButton" android:id="@+id/myButton"></ImageButton> 那么我想要包含这个布局的类已经有了 import android.ImageButton; ImageButton myButton; myButton = (ImageButton)findViewById(R.id.myButton); 这是一个设置或function要求? 我正在使用Eclipse IDE,这将是非常方便的

自定义ListView和上下文菜单。 如何得到它?

我的应用程序中有两个布局文件。 另外我有Activity扩展ListActivity。 此活动的每个项目都考虑item.xml布局文件。 我在长时间按下项目时试图获得上下文菜单,但我没有看到它。 在我的活动我试图registerForContextMenu(getListView())并重写两个方法 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = this.getIntent().getExtras(); registerForContextMenu(getListView()); new PopulateAdapterTask().execute(ACTION_SELECT); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); } catch (ClassCastException e) […]

如何检测布局resize?

黛安娜·哈克博恩(Dianne Hackborn)在一对夫妇的线程中提到,当一个布局被resize时,例如当软键盘打开或closures时,你可以检测到它。 这样的线程是这个… http://groups.google.com/group/android-developers/browse_thread/thread/d318901586313204/2b2c2c7d4bb04e1b 但是,我不明白她的回答:“通过您的视图层次结构调整所有相应的布局遍历和callback。 有没有人有进一步的描述或一些如何检测这个例子? 我可以链接哪些callback以检测此问题? 谢谢

Android GridLayout等宽列宽

在Android的GridLayout中真的不可能轻易地强制相等的列宽? 尝试明显的布局… <GridLayout 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:columnCount="4" android:rowCount="8" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_gravity="center" android:text="Button 1" /> <Button android:id="@+id/button2" android:layout_gravity="center" android:text="Button 2" /> <Button android:id="@+id/button3" android:layout_gravity="center" android:text="Button 3" /> <Button android:id="@+id/button4" android:layout_gravity="center" android:text="Button 4" /> </GridLayout> …将最右边的button居中放在明显比其他三个更宽的列中。 (玩button文本,你可以很容易地变得更糟糕的例子。) 我阅读了关于GridLayouts中多余空间分布的Android文档,但似乎很明显,甚至在这种情况下,甚至需要列宽(通常甚至可能是任何一种),我不得不相信我错过了一些明显/容易的事情。

minHeight做什么?

在附加的图像中,我希望button的列与图像的高度相匹配,但我也希望button列的高度最小。 它正确匹配图像的高度,但不尊重minHeight,并会按下button。 我正在设置button列的这些属性: <LinearLayout … android:layout_alignTop="@+id/image" android:layout_alignBottom="@+id/image" android:minHeight="150dp" >

select器不能处理布局和图像视图

我想使用select器的布局和图像视图..但它不适合我。 当我将图像视图更改为图像button或button时,它工作正常。 任何帮助将不胜感激..在此先感谢.. 这里是我用的xmls <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!– When selected, use grey –> <item android:state_pressed="true" android:drawable="@drawable/bg" /> <!–<item android:drawable="@drawable/bg" android:state_focused="true"/> When not selected, use white–> <item android:drawable="@drawable/bg_01" /> </selector> -> The layout xml : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="fill_parent"> <ImageButton android:layout_width="100dp" android:layout_height="50dp" android:text="layout tester" android:textColor="#000000" android:textStyle="bold" android:paddingTop="10dp" android:src="@drawable/testselector" android:layout_gravity="center_horizontal" /> […]

Android:从代码添加视图到特定的布局

我想dynamic地将一些视图添加到已经在XML中定义的LinearLayout中。 我能够添加视图到屏幕上,但是他们不被放置在正确的LinearLayout内部。 我如何从代码中获取对此特定布局的引用,类似于使用findViewById()获取View ?