android - LinearLayout 使用半屏

标签 android android-layout

您好,我在里面有一个 ScrollView 和一个垂直的 LinearLayout。在每个 LinearLayout 槽中,我有一个水平的 LinearLayout,它包含 2 个东西,一个单词和一个数字。问题是有些词被隐藏了??它占据了屏幕的一半。感谢您的帮助。

Layout bounds

Problem


for (int i = 0; i < words.size(); i++) {
    LinearLayout horizontal = new LinearLayout(context);
    horizontal.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams LLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
    horizontal.setLayoutParams(LLParams);

    btnWord.add(i, new Button(context));
    btnWord.get(i).setHeight(60);
    btnWord.get(i).setWidth(120);
    btnWord.get(i).setTypeface(montFont);
    btnWord.get(i).setBackgroundColor(Color.WHITE);
    btnWord.get(i).setTag(i);
    btnWord.get(i).setGravity(Gravity.CENTER);
    btnWord.get(i).setText("  " + words.get(i));
    btnWord.get(i).setOnClickListener(btnClicked);
    horizontal.addView(btnWord.get(i));

    wordWeight.add(i, new Button(context));
    wordWeight.get(i).setHeight(60);
    wordWeight.get(i).setWidth(40);
    wordWeight.get(i).setTypeface(montFont);
    wordWeight.get(i).setBackgroundColor(Color.WHITE);
    wordWeight.get(i).setTag(i);
    wordWeight.get(i).setGravity(Gravity.CENTER);
    wordWeight.get(i).setText("  " + wordWeights.get(i));
    wordWeight.get(i).setOnClickListener(btnClicked);
    horizontal.addView(wordWeight.get(i));

    linearLayout.addView(horizontal);
}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">


    <ScrollView
        android:layout_width="match_parent"
        style="@android:style/Widget.ScrollView"
        android:layout_marginTop="106dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:id="@+id/linearLayout" />

    </ScrollView>
</RelativeLayout>

最佳答案

您可以尝试将每个“项目”的权重 设置为 1,这样它们将平均分配屏幕上的空间。类似于下面的代码 fragment :

LinearLayout ll;
LinearLayout.LayoutParams lp;
lp.weight = 1;
ll.setLayoutParams(lp);

您也可以放弃该逻辑,像我在 this answer 上所做的那样,将 ListView 与自定义适配器一起使用,或设置一个 RecyclerView,如您在 this blog post 上看到的那样.执行其中任何一项都更容易、更有效。

关于 ListViewRecyclerView 的更多信息 here .

关于android - LinearLayout 使用半屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586092/

相关文章:

android - 如何为 fragment 设置动画?

Android 应用内结算最低价格

java - 点击通知后实现intent方法(NotificationCompat.Builder)

Android形状边框渐变中间透明

java - 如何拥有不调整大小的全屏背景图像(带中心裁剪)

java - 如何搜索其他网站的内容并检索结果并放置在我们的 Android 应用程序中?

android - 如何在特定条件下清除喷气背包数据存储数据

android - 使用 Android 工具栏更改 SearchView 中的 TextColor

Android - 带有 3 个按钮的 map

android - 如何在 Activity 创建时显示 ScrollView 滚动条 2 秒?