- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 xml 中获取我的 TextView:
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="left"
android:text="TextView"/>
我想创建多个 TextView,但我希望它们看起来与this 相同。
所以我尝试了:
TextView newTextView = new TextView(this);
newTextView.setLayoutParams(myTextView.getLayoutParams());
我认为这应该从 xml 直接(?)获取 myTextView 的所有布局参数,并将它们传递给 newTextView 以进行设置。
我的问题是:没有任何反应。没有生效,为什么?
最佳答案
这是一个示例项目,表明它可以正常工作。您可以通过查看可视化编辑器的预览看到它的工作原理,它看起来与运行时显示的不同。我认为你的错误是你没有为加权 View 设置 0px(或 0dp,零仍然是零)。
main.xml(布局):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/container">
<TextView android:id="@+id/textView1" android:layout_width="wrap_content"
android:layout_height="0px" android:text="TextView1"
android:layout_weight="1" android:background="#ffff0000" />
<TextView android:id="@+id/textView2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="TextView2"
android:background="#ff00ff00" />
</LinearLayout>
测试 Activity .java :
public class TestActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView tv1=(TextView)findViewById(R.id.textView1);
final TextView tv2=(TextView)findViewById(R.id.textView2);
final LayoutParams layoutParams=tv1.getLayoutParams();
tv2.setLayoutParams(layoutParams);
// adding textView programatically:
final TextView tv3=new TextView(this);
tv3.setText("textView3");
tv3.setBackgroundColor(0xff0000ff);
tv3.setLayoutParams(layoutParams);
final ViewGroup root=(ViewGroup)findViewById(R.id.container);
root.addView(tv3);
}
}
关于android - myView.setLayoutParams(otherView.getLayoutParams());不工作,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762220/
当我使用 xml 设置布局参数时,它工作正常。但是当我尝试以编程方式设置布局参数时,它会出错。我哪里失败了? 我需要在我的 LinearLayout 中设置参数,这里是: 这是我设置参数的代码: r
我正在尝试使用方法 setLayoutParams 来指定我的表格布局的图形参数,但我不确定方法 setLayoutParams 是否采用像素值或倾角值,尤其是在 java 中存储的值似乎是像素的,例
我想将 TextView 的高度远程设置为 WRAP_CONTENT。 我该怎么做,因为没有 remoteviews.setLayoutParams(viewId, param) 函数? 我尝试了 r
我正在制作一个代码,根据其应用程序提供的屏幕尺寸更改其尺寸。它通过 View 的 onSizeChanged() 和 onDraw() 方法获取整个宽度和高度(或其相应 View 的 w 和 h)。
我编写了以下代码,首先增加 ImageView 的大小,然后在 100 毫秒后减小同一 ImageView 的大小。然而,这段代码增加了 ImageView 的大小,但并没有减小它的大小,或者延迟 1
我有 LayoutParams 转换与 addRule()。 我的观点改变了位置,但持续时间是瞬间的。 我在 API 15 上工作,所以我不能使用 beginDelayedTransition()。
如何为 LinearLayout 元素设置 setLayoutParams()。在 MainActivity.java 中。我为第 50 行显示的 set Layout params 和 nullPo
我想尝试在 Android 上使用数据库,所以我制作了一个小应用程序,允许您将联系人添加到数据库然后显示它们。 如果我在 XML 中创建布局然后在代码中编辑文本字段,我就能够显示联系人(来自数据库)。
我创建了一个自定义 View - MyImageView - 在其中绘制位图,我使用 setLayoutParams() 设置我的 View 的宽度和高度,但它不起作用,我使用日志来跟踪我的 View
我看到了这种奇怪的行为,想问问是否有人找到了解决方法。我有一个简单的 RelativeLayout,里面有另一个布局。 奇怪的行为发生在代码中。如果我从嵌套布局中获取 LayoutParams 并将其
-更新- 我已按照 Agarwal 的建议进行操作,但现在出现此错误: 04-21 11:42:01.807: E/AndroidRuntime(1456): java.lang.ClassCastE
我想在实例化之前设置我的 Bitmap 的布局大小,以便它可以被实例化(如果没有,它的布局高度和宽度 = 0)。 我在我的自定义 View 中使用这个简单的代码: @Override protecte
我想将布局参数添加到我的 TextView。 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout
故事 我有 2 个 TextView ,一个在另一个之上: XXXXXXXXXXXX[TextView1] XXXXXXXXXXXX[TextView2] 两个 TextView 都右对齐。 (因此是
例如,如果你想将某些 View 的 LayoutParams 更改为 WRAP_CONTENT,同时 width 和 height以编程方式,它看起来像这样: final ViewGroup.Lay
我想在用户从 ListView 中选择选项时显示 float 按钮。在选中的项目上要显示 float 按钮,否则应隐藏 float 按钮。这是我使用的代码 FloatingActionButton f
我正在尝试使用 FrameLayout 将一个 View 放在表格中另一个 View 的上方(每行 2 个框架布局),但我需要向其添加一些参数(边距、宽度和高度)。问题是向其中添加参数会阻止其显示。例
是否可以设置 mWebView = (WebView) findViewById(R.id.webviewHelp); mWebView.setLayoutParams(new Vie
我过去曾这样做过,但我很沮丧,因为这种方法并不像我预期的那样有效。我有一张图片,我想将其调整为特定尺寸,我正在使用以下代码: snellen.post(new Runnable() {
使用 setLayoutParams 和向 addView 提供参数有什么区别? 我知道 addView 仅在第一次添加 View 时有效。我发现了两种显然可以做同样事情的方法: tv.setLayo
我是一名优秀的程序员,十分优秀!