相关疑难解决方法(0)

Android - 动态地将视图添加到视图中

我有一个视图布局 -

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="0px"
    android:orientation="vertical">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/items_header"
        style="@style/Home.ListHeader" />

    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/items_none"
        android:visibility="gone"
        style="@style/TextBlock"
        android:paddingLeft="6px" />

    <ListView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/items_list" />


</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我想要做的是,在我的主要活动中使用这样的布局

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="0px"
    android:id="@+id/item_wrapper">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我想循环遍历我的数据模型,并将包含第一个布局的多个视图注入主布局.我知道我可以通过在代码中完全构建控件来实现这一点,但我想知道是否有一种方法可以动态构建视图,以便我可以继续使用布局而不是将所有内容都放在代码中.

android view dynamic android-layout

141
推荐指数
5
解决办法
25万
查看次数

android:animateLayoutChanges ="true"with setVisibility(View.GONE)

在我的根布局中,我有

android:animateLayoutChanges="true"
Run Code Online (Sandbox Code Playgroud)

当我在View.GONE状态下使一些View可见时,它会产生完美的动画效果.布局完美展开.但是当我尝试删除视图时

setVisibility(View.GONE)
Run Code Online (Sandbox Code Playgroud)

它让它看起来很突然.视图立即消失,但布局更改动画从视图所在的位置开始,使视图看起来像消失两次.请帮帮我们!:)

xml layout animation android

12
推荐指数
0
解决办法
903
查看次数

Android运行时布局教程

有没有人知道如何执行或在运行时在android中进行活动布局有一个很好的参考?

这是我活动的代码.我确定我只是忽略了在这里做点什么:

package com.isi.sa;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;

public class SimpleAssessmentTest extends Activity {
  LinearLayout layout;
  TextView question;

  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    layout = new LinearLayout(this);
    question = new TextView(this);

    layout.setLayoutParams(new ViewGroup.LayoutParams(-1,-1));
    layout.setBackgroundColor(R.color.blue);

    question.setLayoutParams(new ViewGroup.LayoutParams(-1,-2));
    question.setTextColor(R.color.green);
    question.setTextSize(1,14);

    question.setText("This is question1");
    layout.addView(question);

    setContentView(layout);
  }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我只是尝试使用单个文本视图添加线性布局(仅用于测试目的)但是,当活动开始时,我只得到一个带有我的应用名称标题栏的黑屏.

谢谢

android runtime android-layout

7
推荐指数
1
解决办法
4万
查看次数

向listview中的每一行添加按钮

我想在listview的每一行添加按钮.我创建了一个row.xml在我的布局文件夹中调用的XML文件,并在该文件中添加了两个textview和一个按钮.但是当添加一个按钮时,我无法单击listview的项目.我只能点击按钮.这是row.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"
    >


    <TextView
        android:id="@+id/text11"

        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
  android:textSize="25sp"
  android:textColor="#000000"
         />
          <TextView
        android:id="@+id/text2"

        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
  android:textSize="10sp"
    android:textColor="#000000"
         />
          <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我想在我的活动中引用textviews和button.请帮助我并提出一些想法.

android listview

5
推荐指数
2
解决办法
2万
查看次数

在 android studio 中以编程方式删除按钮单击上的布局

我在单击按钮时添加布​​局。

 private void addLayout() {
    layout2 = LayoutInflater.from(mContext).inflate(R.layout.product_layout, mLinearLayout, false);
    productAuto = (AutoCompleteTextView) layout2.findViewById(R.id.tv_product);
    qtyEditText = (EditText) layout2.findViewById(R.id.prod_qty);
    prodPriceEditText = (EditText)layout2.findViewById(R.id.prod_price);
    prodSpecsEditText = (EditText)layout2.findViewById(R.id.prod_specs);
    removeProduct = (Button)layout2.findViewById(R.id.btn_rmv);
    mLinearLayout.addView(layout2);
    setProd();
    this.initListenersPrd(getActivity());
}
private void initListenersPrd(final Context context) {
    productAuto.setOnItemClickListener((parent, view, position, id) -> {
        String newName = parent.getItemAtPosition(position).toString();
        ProductDetail productDetail = mProductManager.getProductByPrdName(newName);
        if (productDetail != null) {
           this.prodPriceEditText.setText(productDetail.getPrice());
           this.prodSpecsEditText.setText(productDetail.getProductSpec());
        }
    });

    removeProduct.setOnClickListener(v -> {
       if (mLinearLayout.getChildCount()>0)
       {
           ((LinearLayout)mLinearLayout.getParent()).removeView(mLinearLayout);
       }

    });}
Run Code Online (Sandbox Code Playgroud)

现在我想从应用程序中删除特定的产品表单,因此我已((LinearLayout)mLinearLayout.getParent()).removeView(mLinearLayout);单击“删除”按钮。但它删除了动态添加的整个布局。

图形用户界面

在此输入图像描述

正如您在上图中看到的,我添加了 4-5 个产品布局,但是当我单击“删除”按钮时,我删除了所有布局。

更新1

我在主布局中添加了以下布局,然后以编程方式调用其中的产品布局

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)

android android-linearlayout android-view

5
推荐指数
1
解决办法
757
查看次数

Android,添加没有XML布局的新视图

我需要一些有经验的人的帮助.我希望这很容易.我只是想表明新的视图(创建它没有 XML layouts上述主程序的观点).这是整合AdMob.com广告块:

我写了这样的代码:

AdView ad = new AdView(this); 
ad.layout(10, 10, 100, 100); 
ad.setVisibility(View.VISIBLE); 
ad.bringToFront(); 
ad.requestFocus(); 
ad.invalidate();
Run Code Online (Sandbox Code Playgroud)

如你所见 - 没有任何帮助,没有窗口可见
我做错了什么?谢谢!

PS我是在制作ActivityonCreate(Bundle),但我也在其他地方试过.

java controls android view

4
推荐指数
1
解决办法
3万
查看次数

创建新视图时动态隐藏视图存根

我做了一个viewstub充气并再次创建的。它使用的布局包括一个“删除”按钮,用于隐藏视图存根(或缩小它)。

当我创建一个新的viewstub我调用这个代码:

ViewStub eventStub = new ViewStub(this);
            eventStub.setLayoutResource(R.layout.event_container);
            eventContainerMain.addView(eventStub);
            eventStub.inflate();
Run Code Online (Sandbox Code Playgroud)

问题是,在viewstub布局中,删除按钮是用新的viewstub. 那么如何让删除按钮隐藏viewstub里面的内容呢?

最重要的是,如何让其他方法影响其内部的视图

android view stub viewgroup

4
推荐指数
1
解决办法
3873
查看次数

setContentView() 与 XML 布局 vs 视图

在 Android 中,我习惯于使用 XML 文件设置布局

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)

但是您也可以使用 Java 中的视图设置内容

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView);
Run Code Online (Sandbox Code Playgroud)

这具有无法再使用布局文件的副作用。

无论如何,我可以以编程方式设置文本值并仍然使用 layout.xml 文件吗?

java android

1
推荐指数
1
解决办法
5835
查看次数