Android 文本视图不会拉伸以匹配父对象

Android 文本视图不会拉伸以匹配父对象,android,android-layout,Android,Android Layout,我正在编写一个Android应用程序,它要求我以编程方式将TextView添加到TableRow,而TableRow又被添加到TableLayout。要使设计看起来正确,TextView宽度必须与TableRow宽度相同。我遇到的问题是,即使我尝试使用match\u PARENT将TextView的宽度设置为匹配,它也不会生效 下面是我尝试使用的Java示例: final TableRow myTableRow = new TableRow(getApplicationContext());

我正在编写一个Android应用程序,它要求我以编程方式将TextView添加到TableRow,而TableRow又被添加到TableLayout。要使设计看起来正确,TextView宽度必须与TableRow宽度相同。我遇到的问题是,即使我尝试使用
match\u PARENT
将TextView的宽度设置为匹配,它也不会生效

下面是我尝试使用的Java示例:

final TableRow myTableRow = new TableRow(getApplicationContext());

final TextView myTextView = new TextView(getApplicationContext());
myTextView.setWidth(TableRow.LayoutParams.MATCH_PARENT);
myTextView.setPadding(5, 0, 5, 0);
myTextView.setTextColor(Color.BLACK);
myTextView.setTextSize(30);

myTextView.setBackgroundColor(Color.RED);

myTextView.setText("1");

myTableRow.addView(myTextView);

myTableLayout.addView(myTableRow); // Assume 'myTableLayout' has already been declared.
以下是myTableLayout的XML:


有人知道我做错了什么吗

下面是布局显示方式的图片此处发布的代码与实际应用程序代码不同,但足以说明问题所在。具体来说,删除的代码与回复有关。在作为问题一部分发布的示例代码中,Java代码中只显示了一个TextView,但在实际项目中,有两个TextView。


有几种方法可以解决这个问题

  • TableLayout
    TableRow
    都扩展了
    linearlayout
    ,因此您可能需要设置方向
  • 您可以这样设置布局参数(边距参数

    layout_width = 0dp ;
    layout_weight = 1 ;
    

  • 为视图指定“高度”和“宽度”特性的最佳方法是使用布局参数。大多数时候(对我来说几乎所有的时候)直接设置宽度和高度是行不通的

    TableRow.LayoutParams mParam=new TableRow.LayoutParams(
    ViewGroup.LayoutParams.MATCH_PARENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);
    
    // set layout parameter to view
    textView.setLayoutParams(mParam);            
    

    您没有为创建的表行设置匹配父项。也许这就是问题所在?@JyotmanSingh我可以试试,但是TableRow背景与TableLayout的宽度相匹配。你能分享版面图像吗?@Pooya我已经将其添加到问题中。@DavidB:在你显示的版面中,每一行只有一个文本视图,或者多个文本视图?
    TableRow.LayoutParams mParam=new TableRow.LayoutParams(
    ViewGroup.LayoutParams.MATCH_PARENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);
    
    // set layout parameter to view
    textView.setLayoutParams(mParam);