Articles of android linearlayout

如何在Android上动态添加LinearLayout?

我有一个长度为n的数组,我现在需要创建n个LinearLayouts并在每个上添加不同的东西。 怎么能动态完成?

带有分频器的LinearLayout在预蜂窝上

从API级别11 setDividerDrawable() ,在LinearLayout引入了setDividerDrawable()和setShowDividers() ,使线性布局能够显示子元素之间的分隔setDividerDrawable() 。 我真的想使用这个function,但我也在Honeycomb之前定位设备(API级别<11)。 解决此问题的一种方法是扩展LinearLayout并手动添加分隔符。 这是一个原型: import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; public class DividerLinearLayout extends LinearLayout { public DividerLinearLayout(Context context) { super(context); } public DividerLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } public DividerLinearLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void addView(View […]

Android Studio如何制作2列LinearLayout

我是Android App Development的新手,我正在尝试在Android Studio中实现以下按钮布局。 [ 我一直在尝试使用线性布局,但我无法做到正确。 这个问题是,如果我在线性布局中添加了另一个按钮,那么它们只会被挤压在一起,而不是将按钮添加到下一行。 有人可以告诉我让我的LinearLayout每行只有2个小部件,或提供另一个修复。 任何帮助将非常感谢谢谢:-)

线性布局高度和重量

我有以下内容 然而,布局并不是假设正确地填充高度我希望一个linearLayout在另一个下面的期望效果并且占据父空间的1/6。 相反,它似乎是将重量应用于元素的宽度。 在Android中假设百分比高度的正确方法是什么? 宽度似乎是轻微的重量,但我似乎无法在高度上得到正确的。

稍后在文件中安装Android布局参考xml元素

如何引用以后的XML元素? 这是一个特定的用例。 假设我有一个带有LinearLayout根的表单,其中包含多行的LinearLayouts,每行包含一个或多个文本输入区域。 这是我想要的视觉效果。 第一张图片来自Venmo的应用程序,第二张是以下XML的呈现。 这样的布局可能如下所示: 在这个用例中,前向引用是必要的,以便设置下一个焦点元素。 这样,当您按下键盘上的下一个按钮时,它将转到正确的视图。 在这个示例xml中,没有nextFocusDown ,按下next将从name到month,并且永远不会去年。 但是,如果您尝试编译它,您将收到一个错误: 错误:(18,36)找不到与给定名称匹配的资源(在’nextFocusDown’,值为’@id / month’)。 这是因为当我尝试引用它时,id month尚未初始化,因为那是在文件的后面。 如何引用文件后面出现的xml中的id?

在Android上的LiveWallpaper中使用布局资源

当您在Android 2.2+中创建LiveWallpaper时,您将获得一个canvas(或任何3D等效物)。 我想使用内置的Android UI工具绘制一些元素,而不是使用canvas命令从头开始构建所有元素或加载预渲染的UI位图。 将单个视图转换为位图工作正常。 即这很好: // For example this works: TextView view = new TextView(ctx); view.layout(0, 0, 200, 100); view.setText(“test”); Bitmap b = Bitmap.createBitmap( 200, 100, Bitmap.Config.ARGB_8888); Canvas tempC = new Canvas(b); view.draw(tempC); c.drawBitmap(b, 200, 100, mPaint); 但是,使用子项转换LinearLayout会导致问题。 你只能得到LinearLayout本身,而不是它的孩子。 例如,如果我将LinearLayout设置为具有白色背景,则会得到一个很好的渲染白色框,但没有一个TextView子项位于Bitmap中。 我也尝试过使用类似结果的DrawingCache。 我正在使用的代码是多维数据集示例,唯一的更改是额外的绘制命令。 LinearLayout可以作为toast或常规视图(即一切都很好地显示),在LiveWallpaper上我得到的是LinearLayout的背景渲染。 inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); layout = (LinearLayout) inflater.inflate(com.example.android.livecubes.R.layout.testLinearLayout, null); layout.layout(0, 0, 400, […]

需要帮助将线性布局中的EditText居中

我试图在一个线性布局中垂直和水平居中编辑文本,但它不起作用。 真的很简单的问题。 我会尝试在平均时间内改为相对布局。

使用引用而不是layout-land(仅xml)设置LinearLayout方向

我有一个用于横向和纵向的布局。 我在/layout和/layout-land文件夹中有它。 唯一的区别是android:orientation 。 我想在/layout只有1 xml,因为它更容易维护。 我想用/values和/values-land代替。 这可能吗? 我现在拥有的是(删除了不必要的代码): VS 我虽然喜欢这样的东西: 作为一个终极解决方案,我还考虑过只为这个LinearLayout创建一个自定义样式(我不喜欢这个解决方案,但如果我不能使用其他选项,则必须使用它)。 注意:我知道可以在java上实现它,但我正在寻找一个仅限xml的解决方案。

(Android)布局不会在setVisibility(view.GONE)之后重绘?

在app我有: LinearLayout linearLayout2 = (LinearLayout) findViewById(R.id.cvLinearLayout2); 之后 : linearLayout2.setVisibility(View.GONE); 我找不到将linearLayout2带回来的方法。 尝试了一切: linearLayout2.setVisibility(View.VISIBLE); linearLayout2.bringToFront(); linearLayout2.getParent().requestLayout(); linearLayout2.forceLayout(); linearLayout2.requestLayout(); linearLayout2.invalidate(); 但没有结果。 linearLayout2有一个父linearLayout1 ,所以我也试过: linearLayout1.requestLayout(); linearLayout1.invalidate(); 仍然没有结果。 linearLayout2保持GONE 。 在我的应用程序中,我需要移动linearLayout ,然后,过一会儿再次重绘它。 请帮忙。

以编程方式将按钮宽度设置为父LinearLayout的50%

我使用LinearLayout创建了一个Dialog,在这个Dialog中,我有一个Button。 我想将其宽度设置为Dialog宽度的50%,但无论我做什么,按钮仍然会填满整个宽度。 主要问题似乎是我不能以编程方式设置按钮的重量。 我尝试创建第二个水平LinearLayout,它将按住权重设置为0.5f的按钮(父亲的weightSum为1),但这并没有改变任何东西。 如何将按钮设置为宽度的一半? 我已经查看了所有其他问题,但大多数都使用xml,因此它们不相关,并且以编程方式解决它的是使用像素的硬编码值,这显然是对问题的错误解决方案。 编辑:添加一些代码 LinearLayout linearLayout = new LinearLayout(mContext); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setWeightSum(1); // I use these params when I call addContentView LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); testButton = new Button(mContext); testButton.setText(“Test”); testButton.setId(1); testButton.setWidth(0); testButton.setGravity(Gravity.CENTER); LinearLayout buttonLayout = new LinearLayout(mContext); butonLayout.setOrientation(LinearLayout.HORIZONTAL); LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 0.5f); testButton.setLayoutParams(buttonParams); buttonLayout.addView(testButton); linearLayout.addView(buttonLayout); … this.addContentView(scrollView, […]