我正在尝试向scrollview添加linearlayout 这是我的代码 代码编译,但它没有显示新的布局
这是原始布局(我想添加到它)
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:layout_margin="15dp"
android:layout_marginTop="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:id="@+id/ViewHistoryImageLayout">
<ImageView
android:id="@+id/HistoryImage"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="0.76"
android:gravity="center"
android:padding="10dp"
android:src="@drawable/upload"
android:contentDescription="@string/HistoryImage"/>
<TextView
android:id="@+id/TranslatedText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.12"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/translateImageButton" />
</LinearLayout>
这是我想多次添加的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/TranslationMenuLayout" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numStars="5" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
和添加新布局的java代码是:
setContentView(R.layout.activity_view_history_image);
ScrollView sv = new ScrollView(this);
LayoutInflater inflater = (LayoutInflater) getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View ll = inflater.inflate(R.layout.translation_menu, null);
sv.addView(ll);
代码编译正常,应用程序正在运行但没有任何反应 其中一个.xml文件有问题吗?
TNX
答案 0 :(得分:1)
您应该检索现有的ScrollView布局而不是创建它。
setContentView(R.layout.activity_view_history_image);
LayoutInflater inflater = (LayoutInflater) getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View ll = inflater.inflate(R.layout.translation_menu, null);
ScrollView sv = (ScrollView) findViewById(R.id.ScrollView01);
sv.addView(ll);
可能有帮助。
答案 1 :(得分:0)
我认为您需要将原始layout_width
中的LinearLayout
更改为wrap_content
而不是match_parent
。它占据了整个布局
答案 2 :(得分:0)
我遇到了同样的问题。 我试图在onSizeChange上做这个,但它没有用。 所以这段代码帮助了我:
layout.postDelayed(new Runnable() {
@Override
public void run() {
LinearLayout ll = new LinearLayout(getContext());
ll.setOrientation(LinearLayout.HORIZONTAL);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(200, ViewGroup.LayoutParams.MATCH_PARENT);
layout.addView(ll, params);
}
}, 100);
layout是ScrollView中的LinearLayout。
答案 3 :(得分:0)
我构建了不同的ImageView以使其工作,如下所示:
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.selected_spotphotos_container);
imageView = new ImageView(getApplicationContext());
imageView1 = new ImageView(getApplicationContext());
imageView2 = new ImageView(getApplicationContext());
imageView.setImageBitmap(bmImg1);
imageView1.setImageBitmap(bmImg2);
imageView2.setImageBitmap(bmImg3);
linearLayout.addView(imageView,0);
linearLayout.addView(imageView1,1);
linearLayout.addView(imageView2,2);
XML代码就是这个:
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1"
>
....
<HorizontalScrollView
android:id="@+id/hori_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="false"
android:foregroundGravity="left"
android:paddingBottom="1dp"
android:paddingTop="1dp"
android:visibility="visible"
>
<LinearLayout
android:id="@+id/selected_spotphotos_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
android:animateLayoutChanges="true"
android:gravity="left"
android:orientation="horizontal"
android:visibility="visible"
>
<!-- images will be added dynamicall to this layout -->
</LinearLayout>
</HorizontalScrollView>
//here u can add different EditText or Button or whatever you want
</LinearLayout>
我希望这可以帮助别人。